#include using namespace std; #define int long long int int_pow(int a, int x, int mod){ if(x == 0) return 1; if(x%2 == 0){ int t = int_pow(a,x/2,mod); return t*t%mod; } else return (int_pow(a,x-1,mod)*a)%mod; } signed main(){ int N,P; cin>>N>>P; int mod = 1e9+7; int ans = 0; int a = 1, b = 1; for(int i=1;i<=N;i++){ a *= i; a %= mod; b *= i; b %= mod-1; } int t = int_pow(a,b,mod); int pp = P; while(N >= P){ ans += N/P; P *= pp; } cout<<(ans*t)%mod<