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)