#define MD 998244353 mapm1; m1[0]=1; ll@n; rep(n){ mapm2; m2.clear(); ll@a; for(auto x:m1){ ll b=a; m2[b]+=x.second; for(auto y:m1){ if((x.first|y.first)!=x.first){ break; } if((b|y.first)!=b){ b|=y.first; m2[b]+=x.second; } } } m1=m2; } Mint z; for(auto x:m1){ z+=x.second; } wt(z);