#include<iostream> #include<cstdio> #include<cmath> #include<string> #include<cstring> #include<algorithm> using namespace std; int a[1000000],b[1000000],n,sum; void zhuan(int a[]) //字符串转化成数字 { char s[1000000]; cin>>n; scanf("%s",s); a[0]=strlen(s); for(int i=1;i<=a[0];i++) { if(s[a[0]-i]>='0'&&s[a[0]-i]<='9') a[i]=s[a[0]-i]-'0'; else a[i]=s[a[0]-i]-'A'+10; } } bool check(int a[]) //判断是否回文 { for(int i=1;i<=a[0];i++) if(a[i]!=a[a[0]-i+1]) return false; return true; } void jia(int a[]) //做加法 { for(int i=1;i<=a[0];i++) b[i]=a[a[0]-i+1]; for(int i=1;i<=a[0];i++) a[i]+=b[i]; for(int i=1;i<=a[0];i++) { a[i+1]+=a[i]/n; a[i]%=n; } if(a[a[0]+1]>0) a[0]++; } int main() { zhuan(a); if(check(a)) {cout<<"STEP="<<0; return 0;} sum=0; while(sum<=30) { sum++; jia(a); if(check(a)) {cout<<"STEP="<<sum; return 0;} } cout<<"Impossible!"; return 0; }