#include using namespace std; using ll = long long; using pint = pair; using pll = pair; int main(){ const ll mod = 998244353; int N; cin >> N; string S; cin >> S; if(N == 1){ if(S[0] == '?')cout << 26 << endl; else cout << 1 << endl; return 0; } vector>> dp(N + 1, vector>(26, vector(26))); for(int i = 0; i < 26; i++){ if(S[0] != '?' && S[0] != 'a' + i)continue; for(int j = 0; j < 26; j++){ if(i == j)continue; if(S[1] != '?' && S[1] != 'a' + j)continue; dp[2][i][j] = 1; } } for(int i = 2; i < N; i++){ for(int j = 0; j < 26; j++){ if(S[i - 1] != '?' && S[i - 1] != 'a' + j)continue; ll sum = 0; for(int k = 0; k < 26; k++){ sum = (sum + dp[i][k][j]) % mod; } for(int k = 0; k < 26; k++){ if(j == k)continue; if(S[i] != '?' && S[i] != 'a' + k)continue; ll p = (mod + sum - dp[i][k][j]) % mod; dp[i + 1][j][k] = (dp[i + 1][j][k] + p) % mod; } } } ll ans = 0; for(int i = 0; i < 26; i++){ for(int j = 0; j < 26; j++){ ans = (ans + dp[N][i][j]) % mod; } } cout << ans << endl; }