#include using namespace std; typedef long long ll; typedef long double ld; typedef vector VI; typedef vector VL; typedef vector> VII; typedef vector> VLL; typedef vector VS; #define pii pair #define pll pair #define pis pair #define psi pair #define rep(i,num,n) for(int i=num;i<(int)(n);i++) //for_loop #define REP(i,n) for(int i=0;i<(int)(n);i++) #define rrep(i,num,n) for(int i=num-1;i>=(int)(n);i--) //reverse_for> #define in(x,a,b) (a<=x && x>=1; return r; } ll moddiv(ll a,ll b){//除算 ll ap_2=modpow(b,MOD-2); return (a*ap_2)%MOD; } ll aCb(ll a,ll b){ return moddiv(modfact(a),modfact(a-b)*modfact((b))%MOD); } int main(){ ll n,m;cin>>n>>m; if(n=1;i--){ ll t=(aCb(m,i)*modpow(i,n))%MOD; ans+=m2*t; ans=(ans+MOD)%MOD; m2*=-1; } cout<