#include<iostream>
using namespace std;
int main() {
int n = 0;
int* d = new int[2 * n + 5];
char* s = new char[n * 2 + 5];
cin >> n;
int i, j = 1;
for (i = 1; i <= n; i++) {
d[j] = 0;
s[j++] = '#';
d[j] = 0;
cin >> s[j];
j++;
}
s[0] = '*';
s[j] = '#';
d[1] = 1;
int l = 1, r = 1;
int mx = 1;
for (i = 2; i <= 2 * n + 1; i++) {
if (i <= r) {
if (d[r + l - i] < r - i + 1)
d[i] = d[r + l - i];
else {
d[i] = r - i + 1;
while (s[i - d[i]] == s[i + d[i]] && i + d[i] <= 2 * n + 1 && i - d[i] >= 1)d[i]++;
}
}
else {
while (s[i - d[i]] == s[i + d[i]] && i + d[i] <= 2 * n + 1 && i - d[i] >= 1)d[i]++;
}
if (r < i + d[i] - 1) {
r = i + d[i] - 1;
l = i - d[i] + 1;
}
if (d[i] > mx && r == 2 * n + 1)
mx = d[i];
cout<<d[i]<<" ";
}
mx--;
cout << n - mx;
cout << "ok";
delete[] d;
delete[] s;
return 0;
}