#include <iostream>
#include <string>

using namespace std;
//adabcdabcda
int main()
{
    string T;
    cin >> T;
    int prva_pol[26], druga_pol[26], i, j;
    int m = T.size(), n = T.size();
    if(n % 2 == 1){
        for(i = 0; i < 26; i ++){
            prva_pol[i] = 0;
            druga_pol[i] = 0;
        }

        for(i = 0; i < n / 2 + 1; i ++){
            if(T[i] == T[n - i - 1]){
                m -= 2;
            }
            else{
                break;
            }
        }

        int a, b;
        for(j = i; j < n / 2 + 1; j ++){
            a = T[j] - 97;
            b = T[n - j - 1] - 97;
            prva_pol[a] ++;
            druga_pol[b] ++;
        }

        for(int k = 0; k < 26; k ++){
        }
        j = i;
        while(prva_pol[T[j] - 97] > 0 && druga_pol[T[j] - 97] > 0){
            m --;
            a = T[j] - 97;
            prva_pol[a] --;
            druga_pol[a] --;
            j ++;
        }
    }

    else{
        for(i = 0; i < 26; i ++){
            prva_pol[i] = 0;
            druga_pol[i] = 0;
        }

        for(i = 0; i < n / 2; i ++){
            if(T[i] == T[n - i - 1]){
                m -= 2;
            }
            else{
                break;
            }
        }

        int a, b;
        for(j = i; j < n / 2; j ++){
            a = T[j] - 97;
            b = T[n - j - 1] - 97;
            prva_pol[a] ++;
            druga_pol[b] ++;
        }

        for(int k = 0; k < 26; k ++){
        }
        j = i;
        while(prva_pol[T[j] - 97] > 0 && druga_pol[T[j] - 97] > 0){
            m --;
            a = T[j] - 97;
            prva_pol[a] --;
            druga_pol[a] --;
            j ++;
        }
    }
    if(m > 0){
        cout << m;
    }
    else{
        if(n % 2 == 0) cout << "2";
        else cout << "1";
    }
    return 0;
}