#include using namespace std; typedef long long ll; const int INF=0x3f3f3f3f; const ll LLINF=0x3f3f3f3f3f3f3f3fLL; const int mod=998244353; const int MAX=6000+10; ll qpow(ll a,ll b) { ll res=1; while(b>0) { if(b&1) res=res*a%mod; a=a*a%mod; b>>=1; } return res; } ll inv(ll x){return qpow(x,mod-2);} int fac[MAX],invfac[MAX]; void init_comb(int n) { assert(nn||m<0||n<0) return 0; return 1ll*fac[n]*invfac[m]%mod*invfac[n-m]%mod; } ll A(int n,int m) { if(m>n||m<0||n<0) return 0; return 1ll*fac[n]*invfac[n-m]%mod; } vector mp[MAX]; char s[MAX]; ll pw24[MAX],pw26[MAX]; int main() { int n,m,i,j,k,a,b,cnta,cnti,cntw,totw,noww; ll ans; pw24[0]=pw26[0]=1; for(i=1;i