#include #include "atcoder/modint" using i64 = long long; using Fp = atcoder::modint1000000007; int main() { i64 N, P; std::cin >> N >> P; i64 base = 0; i64 q = 1; while (q <= N) { q *= P; base += N / q; } Fp u = 1; for (int i = 1; i <= N; ++i) u *= i; u = u.pow(u.val()); std::cout << (base * u).val() << std::endl; }