#include using namespace std; using ll=long long; const int N=1e5+5; const int mod=1e9+7; int n,m; ll jc[N]; bool isp[N]; int mu[N]; vector pr; ll ans; int main(){ scanf("%d%d",&n,&m); if(m>n){ printf("0\n"); return 0; } jc[0]=1; for(int i=1;i<=n;++i)jc[i]=jc[i-1]*i%mod; ll bs=jc[n-2]; n/=m; mu[1]=1; for(int i=2;i<=n;++i){ if(!isp[i]){ pr.push_back(i); mu[i]=-1; } for(int p:pr){ if(p*i>n)break; isp[i*p]=1; if(i%p==0)break; mu[i*p]=-mu[i]; } } for(int i=1;i<=n;++i){ ll cn=n/i; cn=cn*(cn-1)%mod; ans=(ans+mu[i]*cn%mod+mod)%mod; } ans=ans*bs%mod; printf("%lld\n",ans); return 0; }