#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef string str;
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define all(x) (x).begin(), (x).end()
#define len(x) ((int)(x).size())
#define forn(i, n) for (int i = 0; i < (int)(n); ++i)
#define forr(i, l, r) for (int i = (int)(l); i <= (int)(r); ++i)
#define ford(i, r, l) for (int i = (int)(r); i >= (int)(l); --i)
#define cmin(a, b) a = min(a, b)
#define cmax(a, b) a = max(a, b)
ll legendre(ll n, ll p) {
ll cnt = 0;
while (n > 0) {
cnt += n / p;
n /= p;
}
return cnt;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
ll n, m;
if (cin >> n >> m) {
if (m == 1) {
cout << 0 << "\n";
return 0;
}
ll ans = 1e18;
ll temp = m;
for (ll i = 2; i * i <= temp; ++i) {
if (temp % i == 0) {
ll e = 0;
while (temp % i == 0) {
e++;
temp /= i;
}
ll cnt = legendre(n, i);
cmin(ans, cnt / e);
}
}
if (temp > 1) {
ll cnt = legendre(n, temp);
cmin(ans, cnt / 1);
}
cout << ans << "\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIHVsbDsKdHlwZWRlZiBwYWlyPGludCwgaW50PiBwaWk7CnR5cGVkZWYgcGFpcjxsbCwgbGw+IHBsbDsKdHlwZWRlZiB2ZWN0b3I8aW50PiB2aTsKdHlwZWRlZiB2ZWN0b3I8bGw+IHZsbDsKdHlwZWRlZiBzdHJpbmcgc3RyOwoKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBtcCBtYWtlX3BhaXIKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIGFsbCh4KSAoeCkuYmVnaW4oKSwgKHgpLmVuZCgpCiNkZWZpbmUgbGVuKHgpICgoaW50KSh4KS5zaXplKCkpCgojZGVmaW5lIGZvcm4oaSwgbikgZm9yIChpbnQgaSA9IDA7IGkgPCAoaW50KShuKTsgKytpKQojZGVmaW5lIGZvcnIoaSwgbCwgcikgZm9yIChpbnQgaSA9IChpbnQpKGwpOyBpIDw9IChpbnQpKHIpOyArK2kpCiNkZWZpbmUgZm9yZChpLCByLCBsKSBmb3IgKGludCBpID0gKGludCkocik7IGkgPj0gKGludCkobCk7IC0taSkKCiNkZWZpbmUgY21pbihhLCBiKSBhID0gbWluKGEsIGIpCiNkZWZpbmUgY21heChhLCBiKSBhID0gbWF4KGEsIGIpCgpsbCBsZWdlbmRyZShsbCBuLCBsbCBwKSB7CiAgICBsbCBjbnQgPSAwOwogICAgd2hpbGUgKG4gPiAwKSB7CiAgICAgICAgY250ICs9IG4gLyBwOwogICAgICAgIG4gLz0gcDsKICAgIH0KICAgIHJldHVybiBjbnQ7Cn0KCmludCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKE5VTEwpOwoKICAgIAoKICAgIGxsIG4sIG07CiAgICBpZiAoY2luID4+IG4gPj4gbSkgewogICAgICAgIGlmIChtID09IDEpIHsKICAgICAgICAgICAgY291dCA8PCAwIDw8ICJcbiI7CiAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgIH0KCiAgICAgICAgbGwgYW5zID0gMWUxODsKICAgICAgICBsbCB0ZW1wID0gbTsKCiAgICAgICAgZm9yIChsbCBpID0gMjsgaSAqIGkgPD0gdGVtcDsgKytpKSB7CiAgICAgICAgICAgIGlmICh0ZW1wICUgaSA9PSAwKSB7CiAgICAgICAgICAgICAgICBsbCBlID0gMDsKICAgICAgICAgICAgICAgIHdoaWxlICh0ZW1wICUgaSA9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgZSsrOwogICAgICAgICAgICAgICAgICAgIHRlbXAgLz0gaTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGxsIGNudCA9IGxlZ2VuZHJlKG4sIGkpOwogICAgICAgICAgICAgICAgY21pbihhbnMsIGNudCAvIGUpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAodGVtcCA+IDEpIHsKICAgICAgICAgICAgbGwgY250ID0gbGVnZW5kcmUobiwgdGVtcCk7CiAgICAgICAgICAgIGNtaW4oYW5zLCBjbnQgLyAxKTsKICAgICAgICB9CgogICAgICAgIGNvdXQgPDwgYW5zIDw8ICJcbiI7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0K