#include #include #include using namespace std; using namespace atcoder; using mint = modint998244353; #define rep(i,n) for (int i = 0; i < (n); ++i) #define Inf32 1000000001 #define Inf64 4000000000000000001 int main(){ long long m; cin>>m; if(m==1){ cout<<1<>i)&1)X = i; } ans += mint(2).pow(1LL<>0)&1)||((i>>1)&1))x++; if(((i>>2)&1)||((i>>1)&3))x++; if(x==1)ans--; } */ { vector dp(2); dp[0] = mint(2).pow((1LL<=0;i--){ vector ndp(2); int ss = ((m>>i))&1; rep(j,2){ rep(k,2){ rep(l,2){ int tt = k^l; int jj = j; if(j==0 && tt>ss)continue; if(j==0&&tt