#include<iostream>
#include<string.h>
using namespace std;
void obrniSTR(char str[])
{
    int n = strlen(str);

    for (int i = 0; i < n / 2; i++)
        swap(str[i], str[n-i-1]);
}
int countSwap(char s[], int &maksLevo, int &maksDesno)
{
    int n, brojZamena, l, d;
    n = strlen(s);
    maksLevo = n;
    maksDesno = 0;
    brojZamena = 0;

    for (int i=0; i<n/2;i++) {
        l = i;
        d = n-l-1;
        while (l<d)
        {
            if (s[l] == s[d])
                break;
            else d--;
        }
        if (l == d)
            return -1;
        if(maksLevo>d)
            maksLevo = d;
        if(maksDesno<n-l-1)
            maksDesno = n-l-1;

        for (int j = d; j < n-l-1; j++)
        {
            swap(s[j], s[j + 1]);
            brojZamena++;
        }
    }
    return brojZamena;
}
int main()
{
    int str1, str2, rez, maksLevo, maksDesno, rez1, rez2;
    char s[200000];
    cin >> s;
    str1 = countSwap(s, maksLevo, maksDesno);
   // cout << maksLevo << " " << maksDesno<< endl;
     // cout << s << endl;
    rez1 = maksDesno-maksLevo;
    obrniSTR(s);
    str2 = countSwap(s, maksLevo, maksDesno);
    //cout << s << endl;
    rez2 = maksDesno-maksLevo;
   // cout << maksLevo << " " << maksDesno<< endl;

    rez = max(rez1, rez2);
    cout << rez;

    return 0;
}