#include #include using namespace std; using ll = long long; using mint = atcoder::modint998244353; int main(){ ios::sync_with_stdio(false); cin.tie(0); int n; cin >> n; vector primes = {2, 3, 5, 7, 13, 17, 19, 31, 61, 89, 107, 127, 521, 607}; int sz = primes.size(); vector pow2(sz); for(int i = 0; i < sz; i++) pow2[i] = mint::raw(2).pow(primes[i]) - mint::raw(1); mint ans; for(int S = 0; S < (1 << sz); S++) { int sv = 0, U = S; while(U > 0){ sv += primes[__lg(U & -U)]; U -= U & -U; } if (sv == __builtin_popcount(S) * n) { mint tmp = 1; U = S; while(U > 0){ tmp *= pow2[__lg(U & -U)]; U -= U & -U; } ans += tmp; } } cout << ans.val() << '\n'; }