using System;
using System.Collections.Generic;
using System.Linq;

namespace Takmicenje
{
    class MainClass
    {
        static String Zameni(String a, int i, int j)
        {
            char temp;
            char[] charArray = a.ToCharArray();
            temp = charArray[i];
            charArray[i] = charArray[j];
            charArray[j] = temp;
            string s = new string(charArray);
            return s;
        }
        static void Moguci_palindromi(String str, int l, int r, ref List<string> palindromi)
        {
            if (l == r)
                palindromi.Add(str);
            else
            {
                for (int i = l; i <= r; i++)
                {
                    str = Zameni(str, l, i);
                    Moguci_palindromi(str, l + 1, r, ref palindromi);
                    str = Zameni(str, l, i);
                }
            }
        }
        static List<string> NapraviPalindrom(string s)
        {
            List<string> prazna = new List<string>(1)
            {
                s
            };
            if (s.Length == 1)
                return prazna;

            char[] vs = s.Distinct().ToArray();
            int q = vs.Length, br_neparnih = 0;
            int[] vs1 = new int[q];
            for (int i = 0; i < s.Length; i++)
            {
                for (int j = 0; j < q; j++)
                {
                    if (s[i] == vs[j])
                    {
                        vs1[j]++;
                    }
                }
            }

            foreach (int p in vs1)
            {
                if (p % 2 == 1) br_neparnih++;
            }

            if (br_neparnih > 1)
            {
                Console.WriteLine("ne moze");
                Environment.Exit(0);
            }

            int polozaj = 0, moto = 0;
            foreach (int p in vs1)
            {
                if (p % 2 == 1) polozaj = moto;
                moto++;
            }

            string prva = "";

            for (int i = 0; i < vs1.Length; i++)
            {
                int k = vs1[i] / 2, j = 0;

                while (j < k)
                {
                    prva += vs[i];
                    j++;
                }
            }

            int l = 0, r = prva.Length - 1;
            List<string> polupalindromi = new List<string>();

            Moguci_palindromi(prva, l, r, ref polupalindromi);

            if (br_neparnih == 0)
            {
                for (int i = 0; i < polupalindromi.Count; i++)
                {
                    string s1 = Reverse(polupalindromi[i]);
                    polupalindromi[i] += s1;
                }
            }
            else
            {
                for (int i = 0; i < polupalindromi.Count; i++)
                {
                    string s1 = Reverse(polupalindromi[i]);
                    polupalindromi[i] += vs[polozaj] + s1;
                }
            }

            return polupalindromi;
        }
        static string Reverse(string s)
        {
            string s1 = new string(s.ToCharArray().Reverse().ToArray());
            return s1;
        }
        public static void Main(string[] args)
        {
            string s = Console.ReadLine();
            string s1 = Reverse(s);

            if (s1 == s)
            {
                Console.WriteLine(1);
                Environment.Exit(0);
            }


            List<string> resenja = NapraviPalindrom(s);
            int najmanje = int.MaxValue;
            foreach (string str in resenja)
            {
                int pocetak = 0, kraj = str.Length - 1, pk = 0;

                for (int i = 0; i < str.Length; i++)
                {
                    if (s[i] != str[i] && pk == 0)
                    {
                        pocetak = i;
                        pk++;
                    }
                    if (s[i] != str[i] && pk != 0)
                        kraj = i + 1;
                }

                pk = kraj - pocetak;

                if (pk < najmanje)
                    najmanje = pk;
            }
            Console.WriteLine(najmanje);
        }
    }
}