#include
#include
#include
using namespace std;
int f[401000], len;
char s1[401000];
void getfail()
{
f[0] = f[1] = 0;
for(int i = 1; i < len; i++)
{
int j = f[i];
while(j && s1[j] != s1[i])
{
j = f[j];
}
f[i + 1] = s1[i] == s1[j] ? j + 1 : 0;
}
}
void digui(int len)
{
if(len == 0)
{
return;
}
digui(f[len]);
printf("%d ", len);
}
int main()
{
while(scanf("%s", s1) != EOF)
{
len = strlen(s1);
getfail();
digui(len);
printf("\n");
}
}