import math n, p = map(int, input().split()) nfact_cnt = 0 tmp = n while tmp > 0: nfact_cnt += tmp // p tmp = tmp // p MOD = 10**9 + 7 N = 10**5 + 1010 fact = [1]*(N+1) r = 1 for i in range(1, N+1): fact[i] = r = r * i % MOD nfact = fact[n] #print(nfact_cnt, pow(nfact, nfact, MOD)) #print(nfact_cnt * pow(nfact, nfact, MOD) % MOD) fc = math.factorial(n) #print("===") #print(nfact_cnt, pow(nfact, fc, MOD) % MOD) print(nfact_cnt * pow(nfact, fc, MOD) % MOD)