#include using namespace std; // // string gen(int x,int n){ // string res; // for(int i=0;i st; // vector bk(2*n+4+1,0); // for(int i=0;i<(1<<(2*n+4));i++){ // string s=gen(i,2*n+4); // if(st.find(s)!=st.end()){continue;} // bk[__builtin_popcount(i)]++; // string hs=half(2*n+4,s); // st.insert(s); // st.insert(hs); // reverse(s.begin(),s.end()); // reverse(hs.begin(),hs.end()); // st.insert(s); // st.insert(hs); // } // for(auto &nx : bk){cout << nx << " ";}cout << "\n"; // } // return 0; // } #define mod 998244353 #define FACSIZE 1048576 long long power(long long a,long long b){ long long x=1,y=a; while(b>0){ if(b&1ll){ x=(x*y)%mod; } y=(y*y)%mod; b>>=1; } return x%mod; } long long modular_inverse(long long n){ return power(n,mod-2); } long long factorial[FACSIZE]; long long invfact[FACSIZE]; void cfact(){ long long i; factorial[0]=1; factorial[1]=1; for(i=2;i=0;i--){ invfact[i]=invfact[i+1]*(i+1); invfact[i]%=mod; } } long long calcnCr(long long n,long long k){ if(k<0 || n> n >> k; if(n==1){ if(k==1){ cout << "1\n"; } if(k==2){ cout << "3\n"; } if(k==3){ cout << "3\n"; } if(k==4){ cout << "3\n"; } if(k==5){ cout << "1\n"; } if(k==6){ cout << "1\n"; } return 0; } cout << A226048(n+2,k) << "\n"; return 0; }