#include using namespace std; // 定数 (hằng số modulo) const long long もど = 998244353; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int にゅうりょく_n; cin >> にゅうりょく_n; // 各数の1ビットの個数を保存する配列 vector ビットのかず(にゅうりょく_n + 1); for(int すう = 0; すう <= にゅうりょく_n; すう++){ ビットのかず[すう] = __builtin_popcount(すう); } long long こたえ = 0; // すべての(a,b)ペアを調べる for(int a = 0; a <= にゅうりょく_n; a++){ for(int b = 0; b <= にゅうりょく_n; b++){ // p(a) == p(b) のときだけ加算 if(ビットのかず[a] == ビットのかず[b]){ こたえ += (a & b); if(こたえ >= もど) こたえ -= もど; } } } // 結果を出力 cout << こたえ % もど; return 0; }