#include<stdio.h>
#include<string.h>
int main(){
char s[101];
while(~scanf("%s",s)){
int next[101];
int i=1;
int j=0;
int l=strlen(s);
next[1]=0;
while(i<l){
if(j==0||s[i-1]==s[j-1]){//字符数组下标从0开始
i++;
j++;
next[i]=j;
}
else{
j=next[j];
}
}
for(int i=1;i<=l;i++){
printf("%d ",next[i]);
}
printf("\n");
}
}
#include<stdio.h>
#include<string.h>
int main(){
char s[101];
while(~scanf("%s",s)){
int next[101];//字符数组下标为从0开始
int i=1;
int j=0;
int l=strlen(s);
next[1]=0;
while(i<l){
if(j==0||s[i-1]==s[j-1]){
i++;
j++;
if(s[i-1]!=s[j-1]){
next[i]=j;
}
else{
next[i]=next[j];
}
}
else{
j=next[j];
}
}
for(int i=1;i<=l;i++){
printf("%d ",next[i]);
}
printf("\n");
}
}