#include using namespace std; using ll = long long; #define ALL(v) v.begin(),v.end() #define dbg(x) cerr << #x << ": " << (x) << endl; template ostream& operator<<(ostream& os, pair& p) { os << '(' << p.first << ',' << p.second << ')'; return os; } template void print(Iter beg, Iter end) { for (Iter itr = beg; itr != end; ++itr) { cerr << *itr << ' '; } cerr << '\n'; } ll modpow(ll x, ll n, ll mod) { x %= mod; ll res = 1; while (n > 0) { if (n&1) res = res*x%mod; x = x*x%mod; n >>= 1; } return res; } int n; ll mod = 998244353; int main() { cin >> n; ll inv5 = modpow(5, mod-2, mod); vector prob(5, vector(n+1)), exp(5, vector(n+1)); for (int i = 0; i < 5; ++i) prob[i][1] = inv5; exp[0][1] = exp[4][1] = 0; exp[1][1] = exp[2][1] = exp[3][1] = inv5; vector l{ 0, 0, 1, 2, 3 }; vector r{ 2, 3, 4, 5, 5 }; int dy[] = {0, 1, 1, 1, 0}; vector mp; for (int i = 0; i <= 5; ++i) mp.push_back(modpow(i, mod-2, mod)); for (int i = 2; i <= n; ++i) { for (int j = 0; j < 5; ++j) { for (int k = l[j]; k < r[j]; ++k) { // prob prob[k][i] += prob[j][i-1] * mp[r[j]-l[j]] % mod; prob[k][i] %= mod; // exp exp[k][i] += (exp[j][i-1] * mp[r[j]-l[j]] % mod + dy[k] * mp[r[j]-l[j]] % mod * prob[j][i-1] % mod) % mod; exp[k][i] %= mod; } } } ll ans = 0; for (int i = 0; i < 5; ++i) ans = (exp[i][n] + ans) % mod; cout << ans << '\n'; }