# coding: utf-8 import array, bisect, collections, copy, heapq, itertools, math, random, re, string, sys, time sys.setrecursionlimit(10 ** 7) INF = 10 ** 20 MOD = 10 ** 9 + 7 def II(): return int(input()) def ILI(): return list(map(int, input().split())) def IAI(LINE): return [ILI() for __ in range(LINE)] def IDI(): return {key: value for key, value in ILI()} def read(): S = str(input()) return (S,) def is_kaibun(l_char): for i in range(len(l_char) // 2): if not l_char[i] == l_char[len(l_char) - i - 1]: return False return True def solve(S): ans = 1 bool_outer = False for i in range(len(S) - 1, 1, -1): for j in range(len(S) - i + 1): l_char = S[j:i + j] if is_kaibun(l_char): ans = i bool_outer = True break if bool_outer: break return ans def main(): params = read() print(solve(*params)) if __name__ == "__main__": main()