#define MD 998244353 int p[7d5],q[1d7]{},r[1d7],s[1d7]; ll np=Prime(1d7,p); rep(i,np){ q[p[i]]=1; } int a=0,b=0; rep(i,1d7){ r[i]=a+=q[i]; s[i]=b+=q[i]&q[i^2]; } ll@t; rep(t){ ll@n,@m; if(n==1){ wt(r[m]); }else{ m-=!(m&2); --n; n<<=2; ull a=1,b=0,c=0,d=1; rep(30){ ull e=a*a+b*c; ull f=b*(a+d); ull g=c*(a+d); ull h=d*d+b*c; if((int)n<0){ a=f%MD*s[m]; b=e+f; c=h%MD*s[m]; d=g+h; }else{ a=e; b=f; c=g; d=h; } a%=MD; b%=MD; c%=MD; d%=MD; n<<=1; } wt((a+c+s[m]*(b+d))%MD); } }