#include <bits/stdc++.h>
#define NMAX 100001
#define MOD 666013
typedef unsigned long long ull;
using namespace std;
ifstream fin("kfib.in");
ofstream fout("kfib.out");
int t;
int a, b;
void copyMat(int dest[][2], int src[][2])
{
for(int i = 0; i < 2; i++)
for(int j = 0; j < 2; j++)
dest[i][j] = src[i][j];
}
void matMul2x2(int a[][2], int b[][2], int res[][2])
{
res[0][0] = ((ull)a[0][0] * b[0][0] % MOD + (ull)a[0][1] * b[1][0] % MOD) % MOD;
res[0][1] = ((ull)a[0][0] * b[0][1] % MOD + (ull)a[0][1] * b[1][1] % MOD) % MOD;
res[1][0] = ((ull)a[1][0] * b[0][0] % MOD + (ull)a[1][1] * b[1][0] % MOD) % MOD;
res[1][1] = ((ull)a[1][0] * b[0][1] % MOD + (ull)a[1][1] * b[1][1] % MOD) % MOD;
}
int getFib(int n)
{
int base[][2] = {{0, 1}, {1, 1}};
int fib[][2] = {{1, 0}, {0, 1}};
int aux[2][2];
while(n)
{
if(n & 1)
{
matMul2x2(base, fib, aux);
copyMat(fib, aux);
}
n >>= 1;
matMul2x2(base, base, aux);
copyMat(base, aux);
}
return fib[0][1];
}
int main()
{
/*
fin >> t;
while(t--)
{
fin >> a >> b;
fout << ((ull)getFib(b + 2) - (ull)getFib(a + 1) + MOD) % MOD << '\n';
}
*/
int k;
fin >> k;
fout << getFib(k) << '\n';
return 0;
}