a=input()
n=0
c=[] #存储是回文的子串的长度
while n<len(a): #从长度为1到长度为len(a)-1依次遍历a的子串,判断是否是回文
i=0
while i<len(a):
z=a[i-n:i+1]
l=list(a[i-n:i+1])
l.reverse()
f="".join(l)
if z==f: #如果是回文,把子串长度存储在c中
c.append(len(f))
i+=1
n+=1
print(max(c)) #打印c中的最大值
a=input()
n=0
c=[] #存储是回文的子串的长度
while n<len(a): #从长度为1到长度为len(a)-1依次遍历a的子串,判断是否是回文
i=0
while i<len(a):
z=a[i-n:i+1]
l=list(a[i-n:i+1])
l.reverse()
f="".join(l)
if z==f: #如果是回文,把子串长度存储在c中
c.append(len(f))
i+=1
n+=1
print(max(c)) #打印c中的最大值