#include #include #include #include #include using namespace std; using i32 = int; using u32 = unsigned int; using i64 = long long; using u64 = unsigned long long; #define rep(i,n) for(int i=0; i<(int)(n); i++) const i64 INF = 1001001001001001001; using Modint = atcoder::static_modint<998244353>; int main(){ int N; cin >> N; int M; cin >> M; int K; cin >> K; string S; cin >> S; vector F(N+1); rep(i,N) F[i+1] = F[i] | (1 << (S[i] - 'a')); Modint ans = 0; vector X(28, 0); auto procX = [&](){ vector tmp(28, 0); rep(i,27){ tmp[i+1] += X[i] * Modint::raw(26-i); tmp[i] += X[i] * Modint::raw(i); } swap(tmp, X); }; for(int i=0; i> c) & 1; if(i < N && pc >= K) ans += 1; X[pc] += cnt0; X[pc+1] += cnt1; for(int j=K; j<=26; j++) ans += X[j]; } for(int i=N; i