#pragma GCC optimize("Ofast") #pragma GCC target("avx2") #define MD 998244353 int inverse(int a){ int b=MD; int u=1; int v=0; int s,t; while(b){ t=a/b; s=b; b=a-t*b; a=s; s=v; v=u-t*v; u=s; } if(u<0){ u+=MD; } return u; } #define M 200001 int fac[M],ifac[M]; void mkfac(){ fac[0]=1; for(int i=1;i>1)+1; long y=0,z=0; for(int i=0;i=h;i-=2){ z=(z*16+(long)ifac[i]*(long)ifac[n-i])%MD; } z*=16>>(n&3); printf("%d",(int)((y+z)%MD*fac[n]*2%MD)); }