#include <bits/stdc++.h>
using namespace std;
ifstream fin("kfib.in");
ofstream fout("kfib.out");
const int mod = 666013;
int k;
vector <vector <int> > z = {{1, 1}, {1, 0}};
vector <vector <int> > inmulteste(vector <vector <int> > a, vector <vector <int> > b){
vector <vector <int> > ans(a.size());
for (int i = 0; i < ans.size(); ++i){
ans[i].resize(b[0].size());
}
for (int i = 0; i < a.size(); ++i){
for (int j = 0; j < b[0].size(); ++j){
for (int k = 0; k < a.size(); ++k){
ans[i][j] = (1LL * ans[i][j] + (1LL * a[i][k] * b[k][j]) % mod) % mod;
}
}
}
return ans;
}
vector <vector <int> > log2pow(int n){
if (n == 1){
return z;
}
vector <vector <int> > l = log2pow(n / 2);
if (n & 1){
return inmulteste(z, inmulteste(l, l));
}
return inmulteste(l, l);
}
int main(){
fin >> k;
if (k == 1 || k == 2){
fout << 1 << "\n";
return 0;
}
vector <vector <int> > ans = log2pow(k - 2);
ans = inmulteste(ans, {{1}, {1}});
fout << ans[0][0];
fin.close();
fout.close();
return 0;
}