#include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; const ll INF=1LL<<60; typedef pair P; typedef pair PP; const ll MOD=1e9+7; ll mod_pow(ll x,ll y,ll mod){ ll res=1; while(y>0){ if(y&1){ res*=x; res%=mod; } x*=x; x%=mod; y/=2; } return res; } //legendre //n!をpで割れる回数 ll Legendre(ll n,ll p,ll mod){ ll res=0; while(n>0){ res+=(n/p)%mod; res%=mod; n/=p; } return res; } //n!のmod ll factorial(ll n,ll mod){ ll res=1; for(ll t=1;t<=n;t++){ res*=t%mod; res%=mod; } return res; } int main(){ ll N,P; cin>>N>>P; ll y=factorial(N,MOD-1);//N!=x(MOD-1)+y ll a=factorial(N,MOD); ll ay=mod_pow(a,y,MOD);//a^y ll cnt=Legendre(N,P,MOD); //cout<<"cnt="<