#pragma GCC target("avx2") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #include #include using namespace std; using namespace atcoder; using ll=long long; using mint=modint998244353; using S=mint; S op(S a,S b){ return (a+b); } S e(){ return mint(0); } int main(){ ll n,l,q; cin>>n>>l>>q; vector s(n); for(ll i=0;i>s[i]; } mint base=rand(); vector> seg; vector basepow(l); basepow[0]=mint(1); for(ll i=0;i v(l); for(ll j=0;j seg_(v); seg.push_back(seg_); } while(q--){ ll ty; cin>>ty; if(ty==1){ ll k; cin>>k; k--; char c,d; cin>>c>>d; for(ll i=0;i>t; mint num=mint(0); ll ans=0; for(ll i=0;i<(ll)t.size();i++){ num+=mint(t[i]-'a')*basepow[i]; } for(ll i=0;i