#include <iostream>

using namespace std;
typedef long long ll;
ll pw(ll a,ll x,ll mod){
    ll ret = 1;
    while(x){
        if(x&1) (ret *= a) %= mod;
        (a *= a) %= mod; x /= 2;
    }
    return ret;
}

ll mod = 1000000007;
int main(){
    ll n,p; cin >> n >> p;
    ll i,x = p,sum = 0;
    while(x<=n){
        sum += n/x;
        x *= p;
    }
    sum %= mod;
    ll f1 = 1,f2 = 1;
    for(i=1;i<=n;i++){
        (f1 *= i) %= mod;
        (f2 *= i) %= (mod - 1);
    }
    ll y = pw(f1,f2,mod);
    (sum *= y) %= mod;
    cout << sum << endl;
}