#include<bits/stdc++.h>
using namespace std;
const int N=305;
int n,a[N],b[N],len,i,ans=0;
string s;
inline void change(){
for(i=len-1;i>=0;i--){
if(s[i]>='0'&&s[i]<='9')
b[len-i]=s[i]-'0';
if(s[i]>='A'&&s[i]<='F')
b[len-i]=s[i]-'A'+10;
}
}
inline void add(){
for(i=1;i<=len;i++)
b[i]+=b[len-i+1];
for(i=1;i<=len;i++){
if(b[i]>=n){
b[i+1]+=b[i]/n;
b[i]%=n;
}
}
if(b[len+1]>0) len++;
}
inline bool check(){
for(i=1;i<=len;i++)
if(b[i]!=b[len-i+1])
return false;
return true;
}
int main(){
cin>>n;
cin>>s;
len=s.length();
change();
while(!check()){
++ans;
if(ans>30){
cout<<"Impossible!";
return 0;
}
add();
}
printf("STEP=%d",ans);
return 0;
}
输入
10 87
会输出
Impossible!
???!