#include<stdio.h>
#include<vector>

using namespace std;
int main()
{
    
    char s[200000];
    int a[200000];
    int ptr[26];

    

    vector<int> pos[26];

    

    scanf("%s", s);

    int n = 0;

    while(s[n] != 0)
    {
        a[n] = s[n] - 'a';

        n++;
    }

    int j = 0;
    while(1)
    {
        if(a[j] != a[n-j-1])
            break;
        j++;
        
    }n = n-2*j;
    //printf("a");

    for(int i = 0; i < n; i++)
    {
        a[i] = a[i+j];
    }

    for(int i = 0; i < n; i++)
        pos[a[i]].push_back(i);


    //printanje
    // printf("%d\n", n);
    // for(int i = 0; i < n; i++)
    //     printf("%d ", a[i]);
    // printf("\nPozicije");
    
    // for(int i = 0; i < 26; i++)
    // {
    //     printf("\n%d: ", i);
    //     for(int j = 0; j < pos[i].size(); j++)
    //         printf("%d ", pos[i].at(j));
        
    // }
    if(n <= 1)
    {
        printf("1");
        return 0;
    }
        
    
    int min = n;
    int max = -1;

    for(int i = 0; i < 26; i++)
        ptr[i] = pos[i].size() - 1;

    for(int i = 0; i < min; i++)
    {
        //if(ptr[a[i]] == -1)
        //    min = 
        if(pos[a[i]][ptr[a[i]]] < min)
            min = pos [a[i]] [ptr[a[i]]];
        ptr[a[i]] --;
    }

    for(int i = 0; i < 26; i++)
        ptr[i] = 0;

    for(int i = n-1; i > max ; i--)
    {
        if(pos[a[i]][ptr[a[i]]] > max)
            max = pos [a[i]] [ptr[a[i]]];
        ptr[a[i]] ++;
    }
    min = n-min;
    max++;

    if(min < 1 || max < 1)
        printf("1");
    else if(min < max)
        printf("%d", min);
    else
        printf("%d", max);
    return 0;
}//abcabaccccbacbcc
//1231213333213233