#include long long f[1000001] = {1, 1}; long long X,Y,p=1000000007; long long extend_Euclid(long long a, long long b) { if (b == 0) { X = 1; Y = 0; return X; } extend_Euclid(b, a % b); long long t = X; X = Y; Y = t - a / b * Y; return (X % b + b) % b; } int main() { for (int i = 2; i < 1000001; i++) { long long xxx=extend_Euclid(i+2,p); f[i] = (((((long long)(2 * i + 1) * f[i - 1])%p *xxx)%p) + ((((long long)(3 * i - 3) * f[i - 2])%p*xxx)%p))%p; } int tt; scanf("%d",&tt); while(tt--){ int nx; scanf("%d",&nx); printf("%I64d\n",f[nx]); } return 0; }