#include <bits/stdc++.h>

using namespace std;

map<char,int> m;

int main()
{
    string s;
    cin>>s;
    int n;
    n=s.size();
    for (int i=0;i<n/2;i++)
    {
        if (s[i]==s[n-1-i])
        {
            s[i]='*';
            s[n-1-i]='*';
        }
        else
        {
            break;
        }
    }
    string rec="";
    for (int i=0;i<n;i++)
    {
        if (s[i]!='*')
        {
            rec=rec+s[i];
        }
    }
    //cout<<rec;
    int poz;
    int rez1,rez2;
    string rec1=rec;
    string rec2=rec;
    reverse(rec2.begin(),rec2.end());
    for (int i=0;i<rec1.size();i++)
    {
        char c;
        c=rec1[i];
        if (c=='*')
        {
            rez1=rec1.size()-i;
            break;
        }
        else
        {
            poz=rec1.find_last_of(c);
            if (poz==-1  || poz<=i )
            {
                rez1=rec1.size()-i;
                break;
            }
            else
            {
                rec1[poz]='*';
            }
        }
        //cout<<rec1<<endl;
    }
    for (int i=0;i<rec2.size();i++)
    {
        char c;
        c=rec2[i];
        if (c=='*')
        {
            rez2=rec2.size()-i;
            break;
        }
        else
        {
            poz=rec2.find_last_of(c);
            if (poz==-1  || poz<=i )
            {
                rez2=rec2.size()-i;
                break;
            }
            else
            {
                rec2[poz]='*';
            }
        }
        //cout<<rec2<<endl;
    }
    //cout<<rec2<<" "<<rez2;
    cout<<min(rez1,rez2)<<endl;
}