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