#include <iostream>
#include<bits/stdc++.h>
using namespace std;
typedef long long int lli;
void getPrimeFactors(lli b, vector<pair<lli,lli>> &factors ){
pair<lli,lli> temp;
temp.first=2;
temp.second=0;
while(b%2==0){
temp.second++;
b/=2;
}
if(temp.second!=0){
factors.push_back(temp);
}
double sqB=sqrt(b);
for(lli i=3; i<=sqB; i+=2){
temp.first=i;
temp.second=0;
while(b%i==0){
temp.second++;
b/=i;
}
if(temp.second!=0){
factors.push_back(temp);
}
}
if(b>2){
temp.first=b;
temp.second=1;
factors.push_back(temp);
}
}
int main() {
lli n,b;
cin>>n>>b;
lli ans=0;
double sqB=sqrt(b);
lli nFactors=0;
vector<pair<lli,lli>> initFactors;
getPrimeFactors(b,initFactors);
/*vector<pair<lli,lli>>::iterator it;
for(it=initFactors.begin(); it!=initFactors.end(); it++){
cout<<(*it).first<<" "<<(*it).second<<"\n";
}*/
vector<lli> countFactors(initFactors.size(),0);
lli i=0;
vector<pair<lli,lli>>::iterator it;
for(it=initFactors.begin(); it!=initFactors.end(); it++){
lli tempN=n;
while(tempN>0){
countFactors[i]+=tempN/(*it).first;
tempN/=(*it).first;
}
i++;
}
lli min=1000000000000000000;
for(lli i=0; i<countFactors.size(); i++){
lli temp=countFactors[i]/initFactors[i].second;
if(min>temp)
min=temp;
}
cout<<min;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp0eXBlZGVmIGxvbmcgbG9uZyBpbnQgbGxpOwoKCnZvaWQgZ2V0UHJpbWVGYWN0b3JzKGxsaSBiLCB2ZWN0b3I8cGFpcjxsbGksbGxpPj4gJmZhY3RvcnMgKXsKCXBhaXI8bGxpLGxsaT4gdGVtcDsKCXRlbXAuZmlyc3Q9MjsKCXRlbXAuc2Vjb25kPTA7Cgl3aGlsZShiJTI9PTApewoJCXRlbXAuc2Vjb25kKys7CgkJYi89MjsKCX0KCWlmKHRlbXAuc2Vjb25kIT0wKXsKCQlmYWN0b3JzLnB1c2hfYmFjayh0ZW1wKTsKCX0KCWRvdWJsZSBzcUI9c3FydChiKTsKCWZvcihsbGkgaT0zOyBpPD1zcUI7IGkrPTIpewoJCXRlbXAuZmlyc3Q9aTsKCQl0ZW1wLnNlY29uZD0wOwoJCXdoaWxlKGIlaT09MCl7CgkJCXRlbXAuc2Vjb25kKys7CgkJCWIvPWk7CgkJfQoJCWlmKHRlbXAuc2Vjb25kIT0wKXsKCQkJZmFjdG9ycy5wdXNoX2JhY2sodGVtcCk7CgkJfQoJfQoJaWYoYj4yKXsKCQl0ZW1wLmZpcnN0PWI7CgkJdGVtcC5zZWNvbmQ9MTsKCQlmYWN0b3JzLnB1c2hfYmFjayh0ZW1wKTsKCX0KfQppbnQgbWFpbigpIHsKCWxsaSBuLGI7CgljaW4+Pm4+PmI7CgoJbGxpIGFucz0wOwoJCglkb3VibGUgc3FCPXNxcnQoYik7CglsbGkgbkZhY3RvcnM9MDsKCQoJdmVjdG9yPHBhaXI8bGxpLGxsaT4+IGluaXRGYWN0b3JzOwoJZ2V0UHJpbWVGYWN0b3JzKGIsaW5pdEZhY3RvcnMpOwoJCgkvKnZlY3RvcjxwYWlyPGxsaSxsbGk+Pjo6aXRlcmF0b3IgaXQ7Cglmb3IoaXQ9aW5pdEZhY3RvcnMuYmVnaW4oKTsgaXQhPWluaXRGYWN0b3JzLmVuZCgpOyBpdCsrKXsKCQljb3V0PDwoKml0KS5maXJzdDw8IiAiPDwoKml0KS5zZWNvbmQ8PCJcbiI7Cgl9Ki8KCQoJdmVjdG9yPGxsaT4gY291bnRGYWN0b3JzKGluaXRGYWN0b3JzLnNpemUoKSwwKTsKCWxsaSBpPTA7Cgl2ZWN0b3I8cGFpcjxsbGksbGxpPj46Oml0ZXJhdG9yIGl0OwoJZm9yKGl0PWluaXRGYWN0b3JzLmJlZ2luKCk7IGl0IT1pbml0RmFjdG9ycy5lbmQoKTsgaXQrKyl7CgkJbGxpIHRlbXBOPW47CgkJd2hpbGUodGVtcE4+MCl7CgkJCWNvdW50RmFjdG9yc1tpXSs9dGVtcE4vKCppdCkuZmlyc3Q7CgkJCXRlbXBOLz0oKml0KS5maXJzdDsKCQl9CQoJCWkrKzsKCX0KCWxsaSBtaW49MTAwMDAwMDAwMDAwMDAwMDAwMDsKCWZvcihsbGkgaT0wOyBpPGNvdW50RmFjdG9ycy5zaXplKCk7IGkrKyl7CgkJbGxpIHRlbXA9Y291bnRGYWN0b3JzW2ldL2luaXRGYWN0b3JzW2ldLnNlY29uZDsKCQlpZihtaW4+dGVtcCkKCQkJbWluPXRlbXA7Cgl9Cgljb3V0PDxtaW47Cn0=