#include<iostream>
using namespace std;
int n;
string m;
int a[401];
int sum;
int lon;
bool judge(int x){//判断回文
int t=x/2;
for(int i=0;i<=t;i++){
if(a[i]!=a[lon-i]) return 0;
}
return 1;
}
int main(){
cin>>n>>m;//输入
lon=m.size();
for(int i=0;i<=lon;i++) a[i]=m[i]-'0';//转化成数组
while(1){
if(sum>30){//超过30就结束
cout<<"Impossible!";
return 0;
}
for(int i=0;i<=lon;i++) a[i]=a[i]+a[lon-i];//高精加
for(int i=0;i<=lon;i++){
a[i+1]=a[i+1]+a[i]/n;
a[i]=a[i]%n;//进位
}
if(a[lon+1]>0) lon++;//判断是否增加了一位数
if(judge(lon)){//如果是回文就结束
cout<<"STEP="<<sum;
return 0;
}
}
}