#include <cstdio>
#include <algorithm>

#define MOD 666013LL

using namespace std;

long long fact[100010], inv[100010], dp[100010];

long long put (long long a, long long p)
{
    long long rez = 1LL;
    for (long long i = 0LL; (1LL << i) <= p; i += 1LL)
    {
        if ((1LL << i) & p) rez *= a, rez %= MOD;

        a *= a;
        a %= MOD;
    }

    return rez;
}

long long comb (long long n, long long k)
{
    return (fact[n] * inv[k] * inv[n - k]) % MOD;
}

void modulo (long long &a)
{
    a %= MOD;
    a += MOD;
    a %= MOD;
}

int main ()
{
    long long n, m;
    scanf ("%lld %lld", &n, &m);

    dp[1] = 0LL;
    dp[2] = 1LL;

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

    fact[0] = inv[0] = 1LL;
    for (int i = 1; i <= m; ++i)
    {
        fact[i] = 1LL * i * fact[i - 1];
        fact[i] %= MOD;

        inv[i] = put (fact[i], MOD - 2LL);
    }

    long long rez = 0LL;
    for (int i = 0; i < m; ++i)
    {
        long long sol = comb (m, i) * put (m - i, n);
        sol %= MOD;

        if (i & 1) sol = -sol;
        rez += sol;
        modulo (rez);
    }

    printf ("%lld\n", (dp[m] * rez) % MOD);

    return 0;
}