最小循环节T=len-next[len]
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
const int MAXN=1e7+10;
char str[MAXN];
int snext[MAXN];
int len;
void getnext()
{
len=strlen(str);
int j=0;
int k=snext[0]=-1;
while(j<len)
{
if(k==-1||str[j]==str[k])
{
j++;k++;
if(str[j]!=str[k]) snext[j]=k;
else snext[j]=snext[k];
}
else k=snext[k];
}
}
int main()
{
while(1)
{
scanf("%s",str);
if(str[0]=='.') break;
getnext();
if(len%(len-snext[len])==0)
printf("%d\n",len/(len-snext[len]));
else
printf("1\n");
}
return 0;
}