#include<bits/stdc++.h>
#define maxn 100100
#define mod 666013 
typedef long long ll;
using namespace std;
ll F[maxn],var;
ll put(ll a, ll p){
    if(p == 0) return 1;
    if(p == 1) return a;
    ll pt = put(a,p/2);
    return (pt*pt*(p%2 ? a : 1))%mod;
}

ll inv(ll x){
    return put(x,mod-2);
}

ll comb(ll n,ll k){
    return ((F[n]*inv(F[k])%mod)*inv(F[n-k]))%mod;
}


ll N,M;
int main(){
    F[0] = F[1] = 1;
    for(int i=2;i<maxn;i++) F[i] = (F[i-1]*i)%mod;
    cin >> N >> M;
    for(int k=1;k<=M;k++) var=(var+comb(M,k)*F[M-k]*(k%2 ? 1 : -1))%mod;
    ll rs = F[M] - var;
    if(rs<0) rs = (rs + (rs/mod+1)*mod)%mod;
    
    ll part = 0;
    for(int k=0;k<=M;k++) part = (part + comb(M,k)*put(M-k,N)*(k%2 ? -1 : 1))%mod;
    if(part<0) part = (part + (part/mod+1)*mod)%mod;
    cout << (rs*part)%mod;
}