n, p = map(int, input().split())
k = 0
pp = p
while pp <= n:
    k += n // pp
    pp *= p
    
mod = 1_000_000_007
x = 1
y = 1
for i in range(1, n + 1):
    x *= i
    x %= mod
    y *= i
    y %= mod - 1
print(k * pow(x, y, mod) % mod)