# include # include # include # define N 1000005 char s1[2*N],s2[2*N],s[N],ch1[N],ch2[N];; int next[N]; void Gnext(char str[]) { int i,j,len=strlen(str); next[0]=0; j=0; for(i=1;i0 && str[j]!=str[i]) j=next[j-1]; if(str[i]==str[j]) j++; next[i]=j; } } int KMP(char *a,char *b) { int i,j,lena,lenb,count; j=0; lena=strlen(a); lenb=strlen(b); count=0; for(i=0;i0 && a[j]!=b[i]) j=next[j-1]; if(a[j]==b[i]) j++; if(j==lena) {j=next[j-1];count++;} } return count; } int main() { int i,j,len1,len2,len,k,minnum,maxnum,count1,count2; while(scanf("%s",s)!=EOF) { len=strlen(s); strcpy(s1,s); strcat(s1,s); strcpy(s2,s1); i=0;j=1; while(i<=len && j<=len) { for(k=0;ks2[j+k]) i=i+k+1; else j=j+k+1; if(i==j) j++; } if(j