using namespace std;
#include <iostream>
#include <string>
#include <cmath>
unsigned long long Reverse (unsigned long long n){
unsigned long long number=0,remainder,merchant;
while(n>0){
remainder=n%10;
number=(number+remainder)*10;
n=n/10;
}
return number/10;
}
unsigned long long change (string M,int length,int N){
int temp=0,temp1=0;
int k=length;
for(int i=0;i<length;i++){
k--;
if(M[i]<='9'&&M[i]>='0'){
temp1=M[i]-48;
temp+=temp1*pow(N,k);}
else if(M[i]>='a'&&M[i]<='z'){
temp1=M[i]-87;
temp+=temp1*pow(N,k);
}
else{
temp1=M[i]-55;
temp+=temp1*pow(N,k);}
}
return temp;
}
int main(){
unsigned long long N;
string M;
int step=0;
cin>>N>>M;
int length=M.length();
int temp=change(M,length,N);
while(Reverse(temp)!=temp){
step++;
temp+=Reverse(temp);
}
if(step<=30)
cout<<"STEP="<<step;
else
cout<<"Impossible!";
return 0;
}