#include <cstdio>
#include <cstring>
const int N = 5e5 + 5;
char c[N];
int n, t[N][26], fail[N], len[N], dep[N], trc, ans, x;
int Find(int x, int y) {
for (; c[y-len[x]-1] != c[y]; x = fail[x]);
return x;
}
int main() {
scanf("%s", c + 1);
n = strlen(c + 1);
fail[0] = trc = 1;
c[0] = len[1] = -1;
for (int i = 1; i <= n; ++i) {
c[i] = (c[i] - 97 + ans) % 26;
x = Find(x, i);
if (!t[x][c[i]]) {
fail[++trc] = t[Find(fail[x], i)][c[i]];
t[x][c[i]] = trc;
dep[trc] = dep[fail[trc]] + 1;
len[trc] = len[x] + 2;
}
printf("%d ", ans = dep[x=t[x][c[i]]]);
}
return 0;
}