import sys n,m=map(int,sys.stdin.readline().split()) M=10**9+7 I=[1]*(m+1);F=[1]*(m+1);R=[1]*(m+1) for i in range(2,m+1): I[i]=(M-M//i)*I[M%i]%M F[i]=i*F[i-1]%M R[i]=I[i]*R[i-1]%M r=0 for k in range(m): r=(r+(-1)**k*F[m]*R[k]*R[m-k]*pow(m-k,n,M))%M print(r)