code:
#include<iostream>
#include<cstring>
using namespace std;
int n;
void adds(string & a){
int u=0;int tmp=0;
while(u<a.size()||tmp){
if(u>=a.size())a+='0';
tmp+=(a[u]>='0'&&a[u]<='9'?a[u]-'0':a[u]-'a'+10)*2;
a[u]=(tmp%n<10?tmp%n+'0':tmp%n-10+'a');
tmp/=n;
u++;
}
}
int main(){
string m;cin>>n>>m;
int ans;char tmp;
for(int i=0;i<m.size()/2;i++){
swap(m[i],m[m.size()-i-1]);
}
bool hw=true;
for(int i=0;i<m.size()/2;i++){
if(m[i]!=m[m.size()-i-1]){
hw=false;
}
}
if(hw){
cout<<"STEP=0";
return 0;
}
for(ans=1;ans<=30;ans++){
adds(m);hw=true;
for(int i=0;i<m.size()/2;i++){
if(m[i]!=m[m.size()-i-1]){
hw=false;
break;
}
}
if(hw)break;
}
if(ans==30)cout<<"Impossible!";
else cout<<"STEP="<<ans;
return 0;
}