using System;
using System.Collections.Generic;
namespace Takmicenje_3
{
    class Program
    {
        static void Main(string[] args)
        {
            string unos = Console.ReadLine();
            int najduzi = 0;
            List<int> lista = new List<int>();
            int i = 0;
            int dp = 0;
            int s = 0;
            int e = 0;
            while (i < unos.Length)
            {
                if (i > dp && unos[i - dp - 1] == unos[i])
                {
                    dp += 2;
                    i += 1;
                    continue;
                }
                lista.Add(dp);
                najduzi = Math.Max(najduzi, dp);
                s = lista.Count - 2;
                e = s - dp;
                bool ima = false;
                for (int j = s; j > e; j--)
                {
                    int d = j - e - 1;
                    if (lista[j] == d)
                    {
                        dp = d;
                        ima = true;
                        break;
                    }
                    lista.Add(Math.Min(d, lista[j]));
                }
                if (!ima)
                {
                    dp = 1;
                    i += 1;
                }
            }
            lista.Add(dp);
            najduzi = Math.Max(najduzi, dp);
            Console.WriteLine(najduzi);
        }  
    }
}