#include #include #include #include using namespace std; typedef long long int ll; #define FOR(i,l,r) for(ll i=l;ia={A},b={B};return inner_product(a.begin(),a.end(),b.begin(),0LL);} ll remainder(ll N){ ll l=zero,r=mod; while(r-l>one){ ll m=(l+r)>>one; if(product(m,mod)<=N)l=m; else r=m; } N-=product(l,mod); while(N>=mod)N-=mod; return N; } vector>P(vector>A,vector>B){ vector>res(two,vector(two)); FOR(i,zero,two)FOR(j,zero,two)FOR(k,zero,two)res[i][j]=remainder(res[i][j]+product(A[i][k],B[k][j])); return res; } int main(){ int T;cin>>T; while(T--){ int N;cin>>N; vector>A={{one,one},{one,zero}},E={{one,zero},{zero,one}}; while(N){ if(N&one)E=P(A,E); A=P(A,A); N>>=one; } cout<