#include using namespace std; typedef pair P; typedef long long ll; typedef vector vi; typedef vector vll; #define pb push_back #define mp make_pair #define eps 1e-9 #define INF 2000000000 #define LLINF 1000000000000000ll #define sz(x) ((int)(x).size()) #define fi first #define sec second #define all(x) (x).begin(),(x).end() #define sq(x) ((x)*(x)) #define rep(i,n) for(int (i)=0;(i)<(int)(n);(i)++) #define repn(i,a,n) for(int (i)=(a);(i)<(int)(n);(i)++) #define EQ(a,b) (abs((a)-(b)) void chmin(T& a,const T& b){if(a>b)a=b;} template void chmax(T& a,const T& b){if(a ostream& operator << (ostream& os,pair& p){ os << p.fi << ',' << p.sec; return os; } template istream& operator >> (istream& is,pair& p){ is >> p.fi >> p.sec; return is; } template ostream& operator << (ostream &os,const vector &vec){ for(int i=0;i istream& operator >> (istream &is,vector& vec){ for(int i=0;i> vec[i]; return is; } void fastio(){ cin.tie(0); ios::sync_with_stdio(0); cout< coe; vector p; vector rem; ll power_mod(ll x,ll a,ll mod){ ll res = 1ll; while(a>0ll){ if(a&1)res = (res*x)%mod; x = (x*x)%mod; a >>= 1; } return res; } explicit Garner(vector &p,vector &rem):p(p),rem(rem){ assert(p.size()==rem.size()); coe.resize(p.size()); vector> r(p.size(),vector(p.size())); for(int i=0;i class NTT{ public: ll power_mod(ll x,ll a,ll mod){ ll res = 1ll; while(a>0ll){ if(a&1)res = (res*x)%mod; x = (x*x)%mod; a >>= 1; } return res; } ll get_MOD() const { return MOD;} vector dft(vector f,int n,int sgn=1){ if(n==1)return f; vector f0,f1; for(int i=0;i idft(vector f,int n){ f = dft(f,n,-1); ll ninv = power_mod(n,MOD-2,MOD); for(int i=0;i mult(vector A,vector B){ int n = 1; while(n C; for(int i=0;i; using NTT2 = NTT<998244353ll,3ll>; using NTT3 = NTT<1224736769ll,3ll>; // for arbitary mod vector ConvolutionWithGarner(vector a,vector b,ll mod){ for(ll &x : a) x = ((x%mod)+mod)%mod; for(ll &x : b) x = ((x%mod)+mod)%mod; NTT1 ntt1; NTT2 ntt2; NTT3 ntt3; vector c1 = ntt1.mult(a,b); vector c2 = ntt2.mult(a,b); vector c3 = ntt3.mult(a,b); vector p = {ntt1.get_MOD(),ntt2.get_MOD(),ntt3.get_MOD()}; vector gn; for(int i=0;i rem = {c1[i],c2[i],c3[i]}; gn.push_back(Garner(p,rem)); } vector c; for(int i=0;i> p; const int M = 200000; vector A(M,0); A[0] = 0; A[1] = 1; for(int i=2;i B = A; // cout << A << endl; vector C = ConvolutionWithGarner(A,B,1000000007); // cout << C << endl; int Q; cin >> Q; for(int i=0;i> q; q -= 2; cout << C[q] << endl; } return 0; }