😏 😏 😏
(1)Imposible:全部字符相等/只有中间第一个字符不相等
(2)1:从某处分开,两半分别为回文//并且不能和原字符串相同
(3)2:其他
bool solve()
{
string s;cin>>s;
int n=sz(s);
int flag=1;
rep(i,n)
{
if((n%2)&&i==n/2) continue;
if(s[i]!=s[0])
{
flag=0;
break;
}
}
if(flag) return 0;
int ans=2;
rep(i,n-1)
{
string tmp="";
for(int j=i+1;j<n;++j) tmp+=s[j];
for(int j=0;j<=i;++j) tmp+=s[j];
int tag=1;
for(int j=0;j<n/2;++j)
{
if(tmp[j]!=tmp[n-1-j])
{
tag=0;
break;
}
}
if(tag)
{
tag=1;
rep(i,n) if(s[i]!=tmp[i]) {tag=0;break;}
if(tag==0) {ans=1;break;}
}
}
cout<<ans<<endl;
return 1;
}
signed main()
{
int T = 1;
while (T--)
{
if(!solve()) cout<<"Impossible\n";
}
stop;
return 0;
}