#include using namespace std; using lint = long long; lint modpow(lint a, lint b, lint mod = 1e9+7) { lint ans = 1, now = a; for (int i = 0; i < 60; i++) { if (b&(1LL<> n >> p; lint cnt = 0; lint power = 1; lint MOD = 1e9+7; for (lint i = 1; i <= n; i++) { lint x = i; power*=i; power%=MOD; while (x%p == 0) cnt++, x/=p; } lint num = modpow(power, power); cout << (num*cnt)%MOD << endl; }