/// 愚直 #include using namespace std; using ll = long long; const ll MOD = 998244353; const string TARGET = "mole"; int N; ll answer = 0; // 1つの文字列 S に含まれる "mole" の部分列数を数える ll count_mole(const string& S) { ll dp[5] = {}; dp[0] = 1; for (char c : S) { for (int i = 3; i >= 0; i--) { if (c == TARGET[i]) { dp[i + 1] += dp[i]; } } } return dp[4]; } // 長さ N の英小文字列を全生成 void dfs(string& S) { if ((int)S.size() == N) { answer = (answer + count_mole(S)) % MOD; return; } for (char c = 'a'; c <= 'z'; c++) { S.push_back(c); dfs(S); S.pop_back(); } } int main() { cin >> N; string S; dfs(S); cout << answer << '\n'; return 0; }