Q = 10**9+7 N,P = map(int,input().split()) K = 0 k = 1 while P**k<=N: K += N//(P**k) k += 1 R = 1 for i in range(2,N+1): R = (R*i)%Q r = 1 for i in range(2,N+1): r = (r*i)%(Q-1) ans = (K*pow(R,r,Q))%Q print(ans)