#include #define pb push_back #define f first #define s second #define pii pair #define mp make_pair using namespace std; const int MOD = 666013; int exp_log(int nr, int exponent) { int sol = 1; for (int i = 0; (1LL << i) <= exponent; i++) { if (exponent & (1LL << i)) { sol = (1LL * sol * nr) % MOD; } nr = (1LL * nr * nr) % MOD; } return sol; } int main() { int n, m; cin >> n >> m; if (n < m) { cout << 0; return 0; } bool minus = true; long long sol = exp_log(m, n); for (int i = m - 1; i > 0; i--, minus = !minus) { int result = exp_log(i, n); result = (1LL * result * m) % MOD; if (minus) { sol = (MOD + sol - result) % MOD; } else { sol = (sol + result) % MOD; } } for (int i = m - 1; i > 0; i--) { sol = (1LL * i * sol) % MOD; } cout << sol; return 0; }