#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <functional>
#include <string>
#include <queue>
#include <deque>
#include <stack>
#include <set>
#include <map>
#include <cmath>
#include <cstring>
#include <bitset>
#include <stdio.h>
#include <math.h>
#include <sstream>
#define xx first
#define yy second
#define all(x) (x).begin(), (x).end()
#define MAXV 987654321
using namespace std;
using i64 = long long int;
using ii = pair<int, int>;
using iis = pair<int, string>;
using ii64 = pair<i64, i64>;
using iii = tuple<int, int, int>;
int _arr[400];
int* arr = _arr + 200;
int countAlphabet() {
int count = 0;
for (int i = 0; i < 400; i++) {
if (_arr[i] > 0)
count++;
}
return count;
}
void printVector() {
for (int i = 97; i < 128; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
int m;
while (cin >> m) {
if (m == 0)
break;
string s;
getline(cin, s);
getline(cin, s);
int r = 0;
int ans = 0;
int n = s.size();
for (int l = 0; l < n; l++) {
r = max(l, r);
while (r < n && countAlphabet() <= m) {
printVector();
arr[s[r]]++;
r++;
}
ans = max(ans, r - l + 1);
printf("%d\n", ans);
arr[s[l]]--;
}
printf("%d\n", ans);
}
return 0;
}