z=10**9+7 N,M=map(int,input().split()) g=[1,1] h=[1,1] v=[0,1] for i in range(2,N+1): v+=v+[-v[z%i]*(z//i)%z] g,h=g+[g[-1]*i%z],h+[h[-1]*v[-1]%z] L=N-M print(pow(M,L,z)*g[N]*h[L]*pow(L+1,z-2,z)%z)