#include <iostream>

using namespace std;

const int modulo = 666013;

long long n,m,ans;
long long p[100010];

inline long long mod(long long x)
{
    if(x>=modulo)
        return x%modulo;
    return x;
}

void gcd(long long a,long long b,long long &x,long long &y)
{
    if(!b)
    {
        x=1;
        y=0;
    }
    else
    {
        long long x0,y0;
        gcd(b,a%b,x0,y0);
        x=y0;
        y=x0-(a/b)*y0;
    }
}

int main()
{
    int i;
    long long curr;
    cin>>n>>m;
    if(m>n)
    {
        cout<<0;
        return 0;
    }
    ans = 1;
    for(i=1; i<=m; ++i)
    {
        ans*=i;
        ans=mod(ans);
    }
    for(i=1; i<=n-m; ++i)
    {
        ans*=n;
        ans=mod(ans);
    }
    int ok = 1;
    for(i=2; i<=m; ++i)
    {
        p[i]=mod(p[i-1]*i + ok);
        if(ok>0)
            ok=-1;
        else
            ok=1;
    }
    cout<<mod(p[m]*ans);
}