1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <bits/stdc++.h>
using namespace std;
const int SIZE=5e4+4;
const int MOD=998244353;
int sum[SIZE][6];
int dp[SIZE];
string s;

int calculate(){
    int N=s.size()-1;
    for(int i=1;i<=N;i++){
        for(int j=0;j<6;j++){sum[i][j]=sum[i-1][j];}
        sum[i][s[i]-97]++;
        dp[i]=(dp[i-1]*2+  (   (sum[i-1][s[i]-97]) ? (sum[i-1][s[i]-97]+1):0)  )%MOD;
    }
    return dp[N];
}

int main(){
    int N,q,a;
    char Z;
    cin>>N>>q>>s;
    s='0'+s;

    cout<<calculate()<<'\n';
    for(int i=0;i<q;i++){
        cin>>a>>Z;
        s[a]=Z;
        cout<<calculate()<<'\n';
    }
return 0;}