WA on #20 QWQ
#include<bits/stdc++.h>
using namespace std;
long long n,k,ans=1;
map<long long,long long> mp;
long long pd(long long x,int y){
long long s=1;
for(int i=1;i<=y;i++){
if(s>n*1.0/x) return -1;
s*=x;
}
return s;
}
bool pd2(long long x){
long long y=sqrt(x);
return (y*y!=x)||(k>2);
}
void solve(int x){
for(int i=2;;i++){
long long op=pd(i,x);
if(op==-1) break;
if(!mp[op]&&pd2(op)) ++ans,mp[op]=1;
}
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>n>>k;
if(k==1){
cout<<n;
return 0;
}
for(int i=k+(k==2);i<=65;i++) solve(i);
cout<<ans+(k==2)*((int)sqrt(n)-1);
return 0;
}