n, p = map(int, input().split()) mod = 10**9 + 7 fact_m = [1] * (n + 1) fact_m_1 = [1] * (n + 1) for i in range(2, n + 1): fact_m[i] = fact_m[i - 1] * i % mod fact_m_1[i] = fact_m_1[i - 1] * i % mod ans = 0 for i in range(1, n + 1): while i % p == 0: ans += 1 ans %= mod i //= p pp = pow(fact_m[n], fact_m_1[n], mod) print(ans * pp % mod)