#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 ifac[M]; void mkfac(){ long x=571834101; for(int i=M;i--;){ ifac[i]=x=x*(i+1)%MD; } } main(){ mkfac(); int n,h; scanf("%d",&n); h=(n>>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<<=4-(n&3); printf("%d",(y+z)*2%MD*inverse(ifac[n])%MD); }