#include <bits/stdc++.h>
using namespace std;

const int MOD = 666013;

int i, n, m, fact[200005], ans = 1, dp[200005];

long long Pow(long long a, int b) {
  long long ans = 1;

  while(b)
    if(b & 1) ans *= a, ans %= MOD, --b;
    else a *= a, a %= MOD, b /= 2;

  return ans;
}

int comb(int n, int k) {
  if(n < k || n < 0 || k < 0) return 0;

  int ans = (1LL * fact[n] * Pow(fact[k], MOD - 2)) % MOD;
  return (1LL * ans * Pow(fact[n - k], MOD - 2)) % MOD;
}

int main() {
  ios_base::sync_with_stdio(0);

  for(i = fact[0] = 1; i <= 2e5 + 1; ++i) fact[i] = (1LL * fact[i - 1] * i) % MOD;

  cin >> n >> m;

  if(n < m) return cout << "0\n", 0;

  dp[1] = 0; dp[2] = 1; dp[3] = 2;
  for(i = 4; i <= m; ++i) dp[i] = (1LL * (i - 1) * (dp[i - 1] + dp[i - 2])) % MOD;

  for(ans = i = 0; i <= m; ++i) {
    int sgn = (i & 1) ? -1 : 1;
    ans = (ans + 1LL * sgn * comb(m, i) * Pow(m - i, n)) % MOD;
  }

  ans = (1LL * ans * dp[m]) % MOD;
  cout << ans << '\n';

  return 0;
}