#include <iostream>
#include <vector>
using namespace std;
vector<int> QianZhui(string s) {
vector<int> pi(s.size());
int i;
pi[0] = 0;
for (i = 1; i < s.size(); i++) {
int len = pi[i-1];
while (len > 0 && s[i] != s[len]) {
len = pi[len-1];
}
if (s[i] == s[len]) pi[i] = len+1;
}
return pi;
}
int main() {
string s;
cin >> s;
int i;
vector<int> pi = QianZhui(s);
for (i = 0; i < pi.size(); i++) {
cout << pi[i] << ' ';
}
return 0;
}