#include #define M 666013 #define NMAX 4000010 using namespace std; //FILE* fin=freopen("date.in","r",stdin); //FILE* fout=freopen("date.out","w",stdout); long long n,fact[NMAX],inv[NMAX]; long long aranjamente(long long n,long long k); void euclid_extins(long long a ,long long b, long long &x,long long &y); long long invers_modular(long long a); int main() { long long i,sum=0; scanf("%lld",&n); fact[0]=1; inv[0]=1; for (i=1; i<=2*n; i++) { fact[i]=((i%M)*(fact[i-1]%M))%M; inv[i]=invers_modular(fact[i]); if (inv[i]<0) inv[i]+=M; } for (i=2; i<=2*n; i++) { sum+=aranjamente(2*n,i); sum%=M; } printf("%lld\n",sum); return 0; } long long aranjamente(long long n,long long k) { if (k>n/2) return (fact[n]*inv[n-k])%M; long long val=(fact[n]*inv[n-k])%M; val-= ( ( ( (fact[n/2]*inv[n/2-k] )%M )*2 ) % M ); return val; } void euclid_extins(long long a ,long long b, long long &x,long long &y) { long long x1,y1; if (!b) { x=1; y=0; return; } euclid_extins(b,a%b,x1,y1); x=y1; y=x1-(a/b)*y1; } long long invers_modular(long long a) { long long x,y; euclid_extins(M,a,x,y); return y; }