#include <bits/stdc++.h>
#define int long long
using namespace std;
int n, k, sq, log2_;
bool p[200];
set<int> S;
int qpow(int x, int y) {
if(y == 0) return 1;
else if(y == 1) return x;
int res = qpow(x, y / 2);
if(y & 1) return res * res * x;
else return res * res;
}
signed main() {
scanf("%lld%lld", &n, &k);
if (k ^ 1) {
log2_ = log2l(n);
for (int i(k); i <= log2_; ++i) {
if(!p[i]) {
for (int j(1); qpow(j, i) <= n; ++j) {
S.insert(qpow(j, i));
}
for (int j(2); j * i <= log2_; ++j) p[i] = 1;
}
}
printf("%lld", S.size());
} else {
cout << n << '\n';
return 0;
}
}