#include <iostream>
#include <bits/stdc++.h>
using namespace std;

bool palindrom(string t)
{
    string s = t;
    reverse(s.begin(),s.end());

    if(t == s)
        return true;
    else
        return false;

}

int main()
{
    string t;
    cin >> t;
    if(palindrom(t))
        cout << 1;
    else
    {
        int duzinaNiske, najkracaPodniska, brojIstih;
        duzinaNiske = t.length();
        brojIstih = 0;

        if(t[0] == t[duzinaNiske-1])
        {
            for(int i = 0; i < duzinaNiske/2; i++)
            {
                if(t[i] == t[duzinaNiske-1-i])
                    brojIstih += 2;
                else
                    break;
            }

            najkracaPodniska = duzinaNiske - brojIstih - 1;
            cout << najkracaPodniska;
        }
        else

        {
            if(duzinaNiske % 2 == 0)
            {
                int indexX = duzinaNiske / 2;
                int indexY = indexX + 1;
                while(t[indexX] == t[indexY])
                {
                    brojIstih += 2;
                    indexX--;
                    indexY++;

                }
                najkracaPodniska = (duzinaNiske - brojIstih)/2;
                cout << najkracaPodniska;
            }
            else
            {
                int indexX = duzinaNiske / 2;
                int indexY = indexX + 2;
                while(t[indexX] == t[indexY])
                {
                    brojIstih += 2;
                    indexX--;
                    indexY++;

                }
                najkracaPodniska = (duzinaNiske - brojIstih - 1)/2;
                cout << najkracaPodniska;
            }
        }
    }
    return 0;
}