def f(s):
t='#'.join('^{}$'.format(s))
n=len(t)
p=[0]*n
c=r=0
for i in range(1,n-1):
mirr=2*c-i
if i<r:
p[i]= min(r-i,p[mirr])
a=i+(1+p[i])
b=i-(1+p[i])
while t[a]==t[b]:
p[i]+=1
a+=1
b-=1
if i+p[i]>r:
c=i
r=i+p[i]
m=max((p[i] for i in range(1,n-1)),default=0)
return m
s=input().strip()
print(f(s))