#include <iostream>
#include <vector>
#include <set>
#include <queue>
#include <algorithm>
#include <string>
#include <fstream>
#include <cctype>
#include <iomanip>
#include <cmath>
#include <cstring>
#include <map>
#include <bitset>

using namespace std;

const int MOD = 666013;

void euclid(long long a, long long b, long long &x, long long &y)
{
    if(b == 0)
    {
        x = 1;
        y = 0;
        return;
    }
    euclid(b,a%b,x,y);
    long long aux = x;
    x = y;
    y = aux - y*(a/b);
}

long long getInvers(long long a)
{
    long long x, y;
    euclid(a,MOD,x,y);
    if(x < 0)
        x = MOD + x%MOD;
    return x;
}

long long fact[8000001];

int main()
{
    int N;
    cin>>N;
    fact[0] = 1;
    for(int i = 1; i <= 2*N; i++)
    {
        fact[i] = fact[i-1] * i;
        if(fact[i] > MOD)
            fact[i] = fact[i] %MOD;
    }
    //cout<<fact[2*N]<<' ';
    long long res = 0, x ;
    for(int i = 2; i <= 2*N; i++)
    {
            x = (fact[2*N]*getInvers(fact[2*N-i]))%MOD;
        //cout<<i<<' '<<x<<'\n';
        if(i <= N)
            x -= (2*fact[N]*getInvers(fact[N-i]))%MOD;
        //cout<<x<<'\n';
        res = (res+x)%MOD;
    }

    //res -= fact[2*N];
    while(res < 0)
        res += MOD;
    cout<<res;
    return 0;
}