#include #include #include using namespace atcoder; using mint = modint998244353; using namespace std; #define rep(i,n) for(int i=0;i<(n);i++) #define Inf 1000000001 long long get(long long n,long long k){ long long ret = 0; while(n!=0){ ret += n/k; n/=k; } return ret; } int main(){ long long N,K,M; cin>>N>>K>>M; map mp; for(long long i=2;i*i<=M;i++){ while(M%i==0){ mp[i]++; M/=i; } } if(M!=1)mp[M]++; long long ans = 8000000000000000000; for(auto a:mp){ long long cur = 0; cur += get(N,a.first); cur -= get(K,a.first); cur -= get(N-K,a.first); ans = min(ans,cur/a.second); } cout<