#include <bits/stdc++.h>
using namespace std;

unordered_map<char, int>poj;

int pozraz(int a, int b){
	
	int x = a - b;
	
	if(x < 0) x = -x;
	
	return x;
	
}

int solve(string t){
	
	int broj;
	int start,end;
	
	int duzina = t.length();
	
	for(int i = 0;i < duzina; i++){
		
		poj[t[i]]++;
		
	}
	
	char srednji;
	
	for(unordered_map<char,int>::iterator it = poj.begin(); it!= poj.end();it++){
		
		char ch = (*it).first;
		int br = (*it).second;
		
		if(br % 2 != 0)srednji = ch;	
		
	}
	
	char m;
	int daljina = duzina;
	int ind;
	
	for(int i = 0; i < duzina; i++){
		
		if(t[i] == srednji){
			
			if(poj[srednji] > 1){
				
				if(pozraz((duzina / 2) , i )< daljina){
				
				daljina = pozraz((duzina / 2) , i );
				
				ind = i;
			}
				
			}
			
			else ind = i;
	
		}
		
	}
			m = t[duzina / 2];
			t[duzina / 2 ] = srednji;
			t[ind] = m;
			start = ind;
			end = ind;
	
	for(int i = 0; i < duzina / 2; i++){
		
		if(t[i] != t[duzina - 1 - i])if(start > duzina / 2){
		end = i;
		break;
	}
		else {
		end = (duzina - 1 - i);
		break;
	}
		
	}
	broj = start - end;
	if (broj < 0)broj = -broj;
	if(start == 0 || end == 0)broj ++;
	if(broj == 0) broj = 1;
	

	return (broj);
	
}

int main(){
	
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	
	string t;
	
	cin >> t;
	
	cout << solve(t) << '\n';
	
	return 0;
}