#include using namespace std; using Int = long long; template struct Kitamasa{ using VT = vector; VT a,c; vector rs; Int m,base; using F = function; F pl,ml; T d0,d1; Kitamasa(VT& A,VT &C,F pl,F ml,T d0,T d1) :a(A),c(C),rs(1),m(c.size()),base(1),pl(pl),ml(ml),d0(d0),d1(d1){ a.insert(a.begin(),d0); rs[0].assign(2*m+1,d0); rs[0][1]=d1; } void form(VT &x){ for(Int i=2*m;i>m;i--){ for(Int j=1;j>=1){ ensure_base(i+1); if(~n&1) continue; swap(tmp,res); add(tmp,rs[i],res); } T ans=d0; for(Int i=1;i a(n,0),c(n,1); a[n-1]=1; Kitamasa::F pl=[](Int a,Int b){return (a+b)%MOD;}; Kitamasa::F ml=[](Int a,Int b){return (a*b)%MOD;}; Kitamasa fib(a,c,pl,ml,0,1); Int q; cin>>q; for(Int i=0;i>p; cout<