/* *********************************************** Author :kuangbin Created Time :2016/4/22 19:51:00 File Name :F:\ACM\2016ACM\BestCoder\BC81\C.cpp ************************************************ */ #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; const int MOD = 1e9+7; long long f[1000010]; long long INV[1000010]; int main() { //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); INV[1] = 1; for(int i = 2;i < 1000010;i++) INV[i] = INV[MOD%i]*(MOD-MOD/i)%MOD; f[0] = 1; f[1] = 1; for(int i = 2;i <= 1000000;i++) f[i] = ((2*i+1)*f[i-1] + (3*i-3)*f[i-2])%MOD*INV[i+2]%MOD; int T; int n; scanf("%d",&T); while(T--) { scanf("%d",&n); printf("%d\n",(int)f[n]); } return 0; }