#include <bits/stdc++.h>
using namespace std;
int N, K;
map<string, map<string, int>> m;

int dfs(string s, string cur) {
    int mn = INT_MAX;
    if (m.count(s) && m[s].count(cur)) {
        return m[s][cur];
    }

    if (s.find(cur) > N && cur.size() > 0) {
        return cur.size();
    }

    for(int i=0;i<K;++i){
        cur.push_back(('a' + i));
        mn = min(dfs(s, cur), mn);
        cur.pop_back();
    }

    return m[s][cur] = mn;
}

void solve() {
    string s;
    cin>>N>>K>>s;
    for(int i=0;i<s.size();++i){
        string t(s.begin(), s.begin() + i+1);
        cout<<dfs(t, "")<<" ";
    }

    cout<<'\n';
}

int main(void){
    ios::sync_with_stdio();
    cin.tie(0);
    cout.tie(0);
    solve();
    return 0;
}