#include using namespace std; #define rep(i,a,b) for(int i=a;i>= 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); } //----------------------------------------------------------------- #define rrep(i,a,b) for(int i=a;i>=b;i--) ll N, M; //----------------------------------------------------------------- int main() { cin >> N >> M; if (N < M) { printf("0\n"); return 0; } ll ans = 0; int m = 1; rrep(i, M, 1) { ll t = (aCb(M, i) * modpow(i, N)) % MOD; ans += m * t; ans = (ans + MOD) % MOD; m *= -1; } cout << ans << endl; }