#include #include using namespace std; using ll = long long; #define rep(i,n) for(int i=0;i<(int)(n);i++) using mint = atcoder::modint998244353; // combination MOD const int MOD=998244353; const int MAX_N=2e6; vector fac(MAX_N+1,1); vector finv(MAX_N+1,1); vector inv(MAX_N+1,1); void comb_setup(){ for(int i=2;i<=MAX_N;i++){ fac.at(i)=(fac.at(i-1)*i)%MOD; inv.at(i)=MOD-(inv.at(MOD%i)*(MOD/i))%MOD; finv.at(i)=(finv.at(i-1)*inv.at(i))%MOD; } } ll comb(int n,int k){ if(n>n>>k; mint ans=comb(2*n+4,k); if(k%2==0){ ans+=comb(n+2,k/2)*2; } if(n%2&&k%2){ ans+=comb(n+1,(k-1)/2)*2; }else if(!(n%2)&&!(k%2)){ ans+=comb(n+2,k/2); }else if(n%2&&!(k%2)){ ans+=comb(n+1,k/2); ans+=comb(n+1,(k-2)/2); } ans/=4; cout<