#include <cstdio>
using namespace std;
long long baza,exp;
long long ok(long long n){
long long e,cati;
cati=0;
e=baza;
while(e<=n){
cati+=n/e;
e*=baza;
}
return cati;
}
long long binary(long long st,long long dr){
long long med,last=-1,ss;
while(st<=dr){
med=st+(dr-st)/2;
ss=ok(med);
if(ss==exp){
if(last==-1){
last=med;
}
else
if(last<med){
last=med;
}
dr=med-1;
}else
if(exp>ss){
st=med+1;
}else{
dr=med-1;
}
}
return last;
}
int main(){
freopen("gfact.in","r",stdin);
freopen("gfact.out","w",stdout);
scanf("%lld%lld",&baza,&exp);
printf("%lld",binary(1,1LL<<60));
return 0;
}