def kaibun_parse(str) l = str.size l.times{|i| tmp = str[i..l-1] if tmp == tmp.reverse return tmp end } end def kaibun_max(str,n) if n == 0 return "" else return [kaibun_max(str,n-1),kaibun_parse(str[0..n-1])].max{|a,b|a.size <=> b.size} end end s = gets puts kaibun_max(s,s.size).size