//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
****************************************************************/