#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int step = 0;
int num[205], numb[205];
int ans[205];
int n, cnt = 0;
char ch[105];
void reversal_(){
for(int i = 1; i <= cnt; i++)
numb[cnt-i+1] = num[i];
/* printf("reversal段\n");
for(int i = 1; i <= cnt; i++)
printf("%d", numb[i]);
printf("\n");*/
return;
}
bool judge(){
int l = 1, r = cnt;
while(l <= r){
if(ans[l] != ans[r])
return false;
l++, r--;
}
return true;
}
void add(){
/* printf("刚开始add\nnum:");
for(int i = 1; i <= cnt; i++)
printf("%d", num[i]);
printf("\nnumb:");
for(int i = 1; i <= cnt; i++)
printf("%d", numb[i]);
printf("\n");*/
for(int i = 1; i <= cnt; i++){
ans[i] += num[i] + numb[i];
if(ans[i] >= n){
ans[i+1] += (ans[i] / n);
ans[i] %= n;
}
}
if(ans[cnt+1] > 0)
cnt++;
/*printf("add段\n");
for(int i = 1; i <= cnt; i++)
printf("%d", ans[i]);
printf("\n");*/
return;
}
void init(){
int len = strlen(ch);
while(cnt < len)
num[++cnt] = ch[cnt-1] - '0';
return;
}
void change(){
memset(numb, 0, sizeof(numb));
for(int i = 1; i <= cnt; i++)
num[i] = ans[i];
memset(ans, 0, sizeof(ans));
return ;
}
int main(){
scanf("%d%s", &n, &ch);
init();
/*printf("%d\n", cnt);
for(int i = 1; i <= cnt; i++)
printf("%d", num[i]);*/
while(step <= 30){
reversal_();
add();
if(judge()){
printf("STEP=%d", step+1);//可能还要+1
return 0;
}
change();
step++;
}
printf("Impossible!");
return 0;
}