#include using namespace std; using LL = long long; using ULL = unsigned long long; #define rep(i,n) for(int i=0; i<(n); i++) const int M = 1000; struct Number { int c, r3; }; Number operator*(Number a, Number b) { return { (a.c * b.c + 3 * a.r3 * b.r3) % M, (a.c * b.r3 + a.r3 * b.c) % M }; } Number operator^(Number a, ULL i) { if (i == 0) return { 1,0 }; Number res = (a * a) ^ (i / 2); if (i % 2 == 1) res = res * a; return res; } int main() { ULL N; cin >> N; Number X = { 1,1 }; X = X ^ N; if(N % 2 == 0) cout << ((X.c * 2 - 1) % M) << endl; else cout << (X.c * 2 % M) << endl; return 0; }