N,M=map(int,input().split()) Mod=10**9+7 Inv=[0]*(M+1) Inv[1]=1 for i in range(2,M+1): q,r=divmod(Mod,i) Inv[i]=(-q*Inv[r])%Mod Comb=[0]*(M+1) Comb[0]=1 for r in range(1,M+1): Comb[r]=((M+1-r)*Inv[r]*Comb[r-1])%Mod X=0 for i in range(M+1): X+=pow(-1,M-i,Mod)*Comb[i]*pow(i,N,Mod) X%=Mod print(X)