#include
#include<math.h>
using namespace std;
bool is_possible(long long int n, long long int k, long long int mid){
int number=1;
for(int i=1; i<=k; i++){
if(number*mid>n){
return false;
}
number*=mid;
}
return true;
}
int main(){
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
long long int n,k,ans;
cin>>n>>k;
int s=0;
int e=n;
while(s<=e){
long long int mid=(s+e)/2;
if(is_possible(n,k,mid)){
ans=mid;
s=mid+1;
}
else{
e=mid-1;
}
}
cout<<ans;
return 0;
}