P=1e9+7;long n,s;m,i;long p(a,i){return i?p(1L*a*a%P,i/2)*(i%2?a:1)%P:1;}main(t){for(scanf("%ld%d",&n,&m);m/++i;)s+=p(-1,m-i)*(t=t*p(i,P-2)%P*(m-i+1)%P)*p(i,n%~-P)%P+P;printf("%d",s%P);}