#include <iostream>
#include <cstdio>
#include <cmath>
#include <ctime>
#include <vector>
#include <cstring>
#include <algorithm>

using namespace std;
string jel;
int pot(int a, int b){
    long long x=1;
    char h;
    for(int i=0;i<b;i++)x*=a;
    while(x){
           h=x%10+'0';  
    jel=h+jel;
    x/=10;
}
    return 0;
}

int main(){
string s;
int b;
cin >> s;
cin >> b;
unsigned long long hi,lo=0,sred=0;
hi=(long long)pow(2.,64.)-1;
int flag=0;
while(lo<=hi){
jel.clear();
sred=(lo+hi)/2;
pot(sred,b);
if(s.size()>jel.size())lo=sred;
if(s.size()<jel.size())hi=sred;
if(s.size()==jel.size()){
    for(int i=0;i<s.size();i++){
            if(s[i]==jel[i])flag=1;
            if(s[i]>jel[i]){lo=sred;flag=0;break;}
            if(s[i]<jel[i]){hi=sred;flag=0;break;}
            }
            }
if(flag==1){printf("%lld",sred);break;}
            
}
system("pause");
return 0;
}
