mod=10**9+7 n,m=map(int,input().split()) fact=[1] for i in range(1,n+1): fact.append((fact[-1]*i)%mod) revfact=[1] for i in range(1,n+1): revfact.append(pow(fact[i],mod-2,mod)) ans=0 for i in range(0,m+1): ans+=pow(-1,i)*(fact[m]*revfact[i]*revfact[m-i])*pow(m-i,n,mod) ans%=mod print(ans)