#include <bits/stdc++.h>

using namespace std;

bool palindrom(string str) {
    int n = str.length();
    for (int i = 0; i <= n/2; i++) {
        if (str[i] != str[n-i-1])
            return false;
    }
    return true;
}

bool proveraBrojaKaraktera(int niz1[], int niz2[]) {
    for (int i = 0; i < 30; i++) {
        if (niz1[i] < niz2[i])
            return false;
    }
    return true;
}

void prebrojKaraktere(int niz[], string s) {
    for (int i = 0; i < s.length(); i++) {
        niz[s[i] - 'a'] += 1;
    }
}

void reset(int niz[]) {
    for (int i = 0; i < 30; i++) {
        niz[i] = 0;
    }
}

bool poredjenjeStringa(string str1, string str2) {
    static int prvi[30], drugi[30];
    prebrojKaraktere(prvi, str1);
    prebrojKaraktere(drugi, str2);
    return proveraBrojaKaraktera(prvi, drugi);
}

int main() {
    string str;
    int n;

    cin >> str;
    n = str.length();

    if (palindrom(str)) {
        cout << 1;
        return 0;
    }
    int index = 0;
    while (str[index] == str[n - index - 1]) {
        index++;
    }

    string novi = "";
    for (int i = index; i < n - index; i++) {
        novi += str[i];
    }

    n = novi.length();
    int offset = 0, min = n; 
    string prvi, drugi;
    if (n % 2 == 0) {

        while (offset != n/2) {
            prvi = novi.substr(0,n/2+offset);
            drugi = novi.substr(n/2+offset, n);
            if (poredjenjeStringa(prvi, drugi)) {
                if (poredjenjeStringa(prvi.substr(0,drugi.length()), drugi)) {
                    if (drugi.length() < min)
                        min = drugi.length();
                }
                else
                    if (prvi.length() < min)
                        min = prvi.length();
            }
            drugi = novi.substr(0,n/2-offset);
            prvi = novi.substr(n/2-offset, n);
            if (poredjenjeStringa(prvi, drugi)) {
                if (poredjenjeStringa(prvi.substr(0,drugi.length()), drugi)) {
                    if (drugi.length() < min)
                        min = drugi.length();
                }
                else
                    if (prvi.length() < min)
                        min = prvi.length();
            }
        }
    }
    cout << min;
    
    return 0;
}