#include<bits/stdc++.h>
using namespace std;
bool hw(string s){
	bool r=true;
	for(int i=0;i<=(s.size()-1)/2;i++){
		if(s[i]!=s[s.size()-1-i]){
			r=false;
			break;
		}
	}
	return r;
}

int main(){
	string s;
	int p=s.size();
	cin>>s;
	if(p%2==1) cout<<p;
	else{
		if(hw(s)){
			while(p!=0){
				p=p/2;
				s=s.substr(0,p);
				if(hw(s)==false){
					cout<<p;
					break;
				}
			}
		}
	}
	

	return 0;
}
// 定义字符串 s
    bool r=true;
//  输入
//判断字符串s的长度是奇数还是偶数
//如果是奇数 输入长度p
//否则{
//  先判断是不是回文
//  如果不是 直接输入p 
//}
//否则 
 //当p不等于0
        //先从中间砍一刀,分成两个部分 p=p/2
        //截取字符串,从下标0开始截取,截取p个
//      调用回文数,判断是不是回文,不是回文,输出p,跳出循环 
    //} 
  
//}  
 


/**************************************************************
	Problem: 1134
	User: zhuanghaoxiang
	Language: C++
	Result: Wrong Answer
****************************************************************/