#!/usr/bin/env python3

import sys

sys.setrecursionlimit(5_005)

data = sys.stdin.read().split()
s = data[0].strip()
n = len(s)
ans = 1

def solve(l, r, ml):
  global ans
  haslr = (l >= 0) and (r < n)
  mismatch = (not haslr) or (s[l] != s[r])
  if not mismatch:
    solve(l - 1, r + 1, ml)
    return
  if ml == -1:
    ans = max(ans, r - l - 1)
    if haslr:
      solve(l - 1, r + 1, l)
    return
  elif ml == -2:
    ans = max(ans, r - l - 1)
    return
  else:
    mr = r - (ml - l)
    if haslr and ((s[ml] == s[r] and s[mr] == s[l]) or (s[ml] == s[l] and s[mr] == s[r])):
        solve(l - 1, r + 1, -2)
    else:
      ans = max(ans, mr - ml - 1)
      for i in range(1, n + 1):
          cl = ml - i
          cr = mr + i
          if cl <= l or cr >= r:
              break
          if (s[cl] == s[ml] or s[cr] == s[ml] or s[cl] == s[mr] or s[cr] == s[mr]):
              ans = max(ans, cr - cl - 1)

      cands = [i for i in range(n) if i <= l or i >= r]
      if (mr - ml) % 2 == 0:
          cands.append((ml + mr) // 2)  # don't forget center!

      for i in cands:
          if s[i] == s[ml] or s[i] == s[mr]:
              ans = max(ans, r - l - 1)

for i in range(n):
  solve(i - 1, i + 1, -1)
  solve(i, i + 1, -1)

print(ans)
