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

//} 
#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;
         }
     //cout<<s[i]<<" "<<s[s.size()-1-i]<<endl;
    }
    return r;
}
int main(){
     
    string s;
    cin>>s;
    int p=s.size();
    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;
                }
                 
            }
             
        }else cout<<p;
         
         
    }
    //cout<<hw(s);
 
    return 0;
}
 

/**************************************************************
	Problem: 1134
	User: jiangyuanfeng
	Language: C++
	Result: Accepted
	Time:7 ms
	Memory:2076 kb
****************************************************************/