#include<bits/stdc++.h>
#define int long long
const int N = 1e6 + 10;
using namespace std;
int n, k, ans;
int QAQ (int a,int b) {
int ans = 1;
while (b) {
if (b & 1) ans = ans * a;
b >>= 1;
a *= a;
}
return ans;
}
void solve () {
map <int, int> a;
cin >> n >> k;
if (k == 1) return cout << n, void();
ans = 1;
for (int i = 2; i <= n; ++i) {
if (QAQ(i, k) > n) break;
for (int j = k; j <= 100; ++j) {
int temp = QAQ (i, j);
if (temp > n) break;
else {
if (!a[temp]) ans++, a[temp] = 1;
}
}
}
cout << ans;
}
signed main() {
freopen("power.in","r",stdin);
freopen("power.out","w",stdout);
solve();
return 0;
}