#pragma GCC target("avx2") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #include #include #define rep(i, a, b) for (ll i = (ll)(a); i < (ll)(b); i++) using namespace atcoder; using namespace std; typedef long long ll; using mint = modint998244353; int f(int a, int b) { int pa = __builtin_popcount(a); int pb = __builtin_popcount(b); if (pa == pb) return a & b; else return 0; } void solve() { int n; cin >> n; mint ans = 0; rep(a, 0, n + 1) rep(b, a, n + 1) { ans += f(a, b); } cout << ans.val() << endl; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int t = 1; while (t--) solve(); }