def v(p,n): cnt = 0 k = 1 while True: d = n//pow(p,k) if d==0: break cnt += d k += 1 return cnt P = list(range(10**6)) for i in range(2,10**6): if i*i>10**6:break for j in range(i*i,10**6,i): P[j] = P[i] Q = [] for i in range(2,10**6): if P[i]==i: Q.append(i) N,K,M = map(int,input().split()) C = {} x = M for p in Q: if x%p==0: cnt = 0 while x%p==0: x //= p cnt += 1 C[p] = cnt if x>1: C[x] = 1 D = {p:0 for p in C} for p in C: D[p] = v(p,N)-v(p,K)-v(p,N-K) ans = 100 for p in C: ans = min(ans,D[p]//C[p]) print(ans)