#include <unordered_map>
#include <unordered_set>
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <string>
#include <vector>
#include <queue>
#include <deque>
#include <cmath>
#include <ctime>
#include <map>
#include <set>
using namespace std;
long long n,a[300005],m,b[300005];
string as;
bool hui(long long n){
for(int i=0;i<n;i++){
if(a[i]!=a[n-i-1])return 0;
}
return 1;
}
int main(){
cin>>m>>as;
n=as.size();
for(int i=0;i<n;i++){
a[i]=as[i]-'0';
}
for(int ii=1;ii<=30;ii++){
if(hui(n)){
cout<<"STEP="<<ii;
return 0;
}
memset(b,0,sizeof(b));
for(int i=0;i<n;i++){
b[i]=a[i];
}
for(int i=0;i<n;i++){
a[i]+=b[n-i-1];
}
for(int i=0;i<n;i++){
a[i+1]+=a[i]/m;
a[i]%=m;
}
if(a[n])n++;
}
cout<<"Impossible!";
return 0;
}