#include<stdio.h>
#define modulo 666013 
using namespace std;
#define mmax 100005

long long rez, nr[mmax], a, im[mmax], nr2[mmax], fact[mmax];
int n, m;

long long putere(int put){
    if (put==0)
        return 1;
    if (put%2==0){
        long long q=putere(put/2);
        return q*q%modulo;
    }else
        return (putere(put-1)*a)%modulo;
}

long long comb(int n, int k){
    return ((fact[n]*im[n-k])%modulo*im[k])%modulo;
}

int main(){
   // freopen("a.in","r",stdin);
   // freopen("a.out","w",stdout);
    scanf("%d %d",&n,&m);
    fact[0]=1;
    for (long long i=1;i<=m;i++){
        fact[i]=(fact[i-1]*i)%modulo;
        nr[i]=(nr[i-1]+nr[i-2])*(i-1)%modulo;
        if (i==2)
            nr[i]=1;
        a=fact[i];
        im[i]=putere(modulo-2);
    }
    a=fact[0];
    im[0]=putere(modulo-2);
    
   
    for (int M=1;M<=m;M++){
        a=M;
        nr2[M]=putere(n);
        for (int x=1;x<=M;x++){
            nr2[M]-=comb(M,x)*nr2[M-x]%modulo;
            if (nr2[M]<0)
                nr2[M]+=modulo;
        }
    }
    printf("%d",(nr[m]*nr2[m])%modulo);
    return 0;
}