#include<bits/stdc++.h>
using namespace std;
char a[1000010];//利用a来进行存储原始的排列顺序。
int ans=0;//ans用来记录分解的次数。
void fj(int r)//递归操作
{
int mid=r/2;//进行分解,对半
if(r%2==1){//如果分解后发现是奇数则不能再分解直接输出并返回
cout<<r;
return;
}
else{
for(int i=0,j=r-1;i<mid;i++,j--){
if(a[i]!=a[j]){//发现如果有不同则输出并返回
cout<<r;
return;
}
}
}
ans++;//计数
fj(mid);递归操作,再判断1~mid是否可以再分解
}
int main()//主函数是不是很简单明了
{
gets(a);
char t;
int len=strlen(a);//strlen(字符数组名)是输出字符串的长度。
fj(len); //递归
}