//3426
#include<bits/stdc++.h>
using namespace std;
int a[500010],minn[500010],next[500010];
char s[500010];
int main()
{
cin>>s+1;
int n=strlen(s+1),j=0;
for(int i=2;i<=n;i++)
{
while(j>0&&s[j+1]!=s[i]) j=next[j];
if(s[j+1]==s[i]) j++;
next[i]=j;
}
for(int i=2;i<=n;i++)
{
minn[i]=i;
if(a[minn[next[i]]]>=i-next[i]) minn[i]=minn[next[i]];
a[minn[i]]=i;
}
cout<<minn[n];
return 0;
}
求dalao指点