#include #include #include using namespace std; typedef vectorV; const long long zero=false; const long long one=true; const long long two=one<>=one){ long long cx=((a&b&msk)^(b&c)^(c&a)); a^=(b&msk)^c; c=cx; c<<=one; msk<<=one; } return a; } long long sub(long long a,long long b){ return add(~add(~zero,b),a); } const long long mo=one|two|four|one<>=one){ if(b&one)ret=add(ret,a); a=add(a,a); } return ret; } long long _div(long long a,long long b){ long long ret=zero; for(;a>=b;){ long long i=zero; for(;a>=b<>T;T;T=sub(T,one)){ long long N; cin>>N;N=sub(N,one); V e={one,zero,zero,one}; V x={one,one,one,zero}; for(;N;N>>=one){ if(N&one)e=M(e,x); x=M(x,x); } cout<