#include <bits/stdc++.h>
using namespace std;
const int N=15,M=1010,K=1024,L=26,mod=998244353;
int n,m;
char a[N];
int pre[N],f[M][K],g[K][L],tmp[N],ans[N];
int main(){
scanf("%d%d%s",&n,&m,a+1);
for(int i=0;i<=(1<<n)-1;i++){
pre[0]=0;
for(int j=1;j<=n;j++)
pre[j]=pre[j-1]+(i>>(j-1)&1);
for(int k=0;k<=L-1;k++){
tmp[0]=0;
for(int j=1;j<=n;j++){
if(a[j]=='a'+k) tmp[j]=pre[j-1]+1;
else tmp[j]=max(tmp[j-1],pre[j]);
g[i][k]+=((tmp[j]-tmp[j-1])<<(j-1));
}
cout << i << ' ' << g[i][k] << ' ' << k << '\n';
}
}
f[0][0]=1;
for(int i=1;i<=m;i++)
for(int j=0;j<=(1<<n)-1;j++)
for(int k=0;k<=L-1;k++){
f[i][g[j][k]]+=f[i-1][j];
f[i][g[j][k]]%=mod;
}
for(int i=0;i<=(1<<n)-1;i++){
ans[__builtin_popcount(i)]+=f[m][i];
ans[__builtin_popcount(i)]%=mod;
}
for(int i=0;i<=n;i++) printf("%d ",ans[i]);
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGludCBOPTE1LE09MTAxMCxLPTEwMjQsTD0yNixtb2Q9OTk4MjQ0MzUzOwppbnQgbixtOwpjaGFyIGFbTl07CmludCBwcmVbTl0sZltNXVtLXSxnW0tdW0xdLHRtcFtOXSxhbnNbTl07CmludCBtYWluKCl7CglzY2FuZigiJWQlZCVzIiwmbiwmbSxhKzEpOwoJZm9yKGludCBpPTA7aTw9KDE8PG4pLTE7aSsrKXsKCQlwcmVbMF09MDsKCQlmb3IoaW50IGo9MTtqPD1uO2orKykKCQkJcHJlW2pdPXByZVtqLTFdKyhpPj4oai0xKSYxKTsKCQlmb3IoaW50IGs9MDtrPD1MLTE7aysrKXsKCQkJdG1wWzBdPTA7CgkJCWZvcihpbnQgaj0xO2o8PW47aisrKXsKCQkJCWlmKGFbal09PSdhJytrKSB0bXBbal09cHJlW2otMV0rMTsKCQkJCWVsc2UgdG1wW2pdPW1heCh0bXBbai0xXSxwcmVbal0pOwoJCQkJZ1tpXVtrXSs9KCh0bXBbal0tdG1wW2otMV0pPDwoai0xKSk7CgkJCX0KCQkJY291dCA8PCBpIDw8ICcgJyA8PCBnW2ldW2tdIDw8ICcgJyA8PCBrIDw8ICdcbic7CgkJfQoJfQoJZlswXVswXT0xOwoJZm9yKGludCBpPTE7aTw9bTtpKyspCgkJZm9yKGludCBqPTA7ajw9KDE8PG4pLTE7aisrKQoJCQlmb3IoaW50IGs9MDtrPD1MLTE7aysrKXsKCQkJCWZbaV1bZ1tqXVtrXV0rPWZbaS0xXVtqXTsKCQkJCWZbaV1bZ1tqXVtrXV0lPW1vZDsKCQkJfQoJZm9yKGludCBpPTA7aTw9KDE8PG4pLTE7aSsrKXsKCQlhbnNbX19idWlsdGluX3BvcGNvdW50KGkpXSs9ZlttXVtpXTsKCQlhbnNbX19idWlsdGluX3BvcGNvdW50KGkpXSU9bW9kOwoJfQoJZm9yKGludCBpPTA7aTw9bjtpKyspIHByaW50ZigiJWQgIixhbnNbaV0pOwp9