#include <iostream>
using namespace std;
long long D = 1000000;
/*
Return a^n (mod p)
*/
long long PowMod(long long a, long long n, long long p) {
if (n == 0) return 1;
if (n % 2 == 0) return PowMod(a * a % p, n / 2, p);
return a * PowMod(a, n - 1, p) % p;
}
/*
一次合同式 a*x=b (mod n: 正整数) の解を x=r (mod m) の形で求める.
解が存在すれば true, しなければ false を返す.
参考: http://h...content-available-to-author-only...y.com/docs/algo/c/congruence.html
*/
bool LinearCongruence(long long a, long long b, long long n, long long &m, long long &r)
{
long long x = a, y = n, z = b, w = 0, s, tmp;
while ((s = x % y) != 0) {
r = x / y;
x = y;
y = s;
tmp = w;
w = z - r * w;
z = tmp;
}
if (b % y != 0) return false;
r = (w / y) % (n / y);
if (r < 0) r += n / y;
m = n / y;
return true;
}
long long Solve(long long n) {
long long s = (2 * (PowMod(16, n, D) - 1)) % D;
long long m, r;
LinearCongruence(3, s, D, m, r);
return r;
}
int main(int argc, char *argv[])
{
cout.precision(16);
long long n = 4;
cin >> n;
cout << Solve(n) << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKbG9uZyBsb25nIEQgPSAxMDAwMDAwOwoKLyoKICAgIFJldHVybiBhXm4gKG1vZCBwKQoqLwpsb25nIGxvbmcgUG93TW9kKGxvbmcgbG9uZyBhLCBsb25nIGxvbmcgbiwgbG9uZyBsb25nIHApIHsKCWlmIChuID09IDApIHJldHVybiAxOwoJaWYgKG4gJSAyID09IDApIHJldHVybiBQb3dNb2QoYSAqIGEgJSBwLCBuIC8gMiwgcCk7CglyZXR1cm4gYSAqIFBvd01vZChhLCBuIC0gMSwgcCkgJSBwOwp9CgovKgogICAg5LiA5qyh5ZCI5ZCM5byPIGEqeD1iIChtb2Qgbjog5q2j5pW05pWwKSDjga7op6PjgpIgeD1yIChtb2QgbSkg44Gu5b2i44Gn5rGC44KB44KLLgogICAg6Kej44GM5a2Y5Zyo44GZ44KM44GwIHRydWUsIOOBl+OBquOBkeOCjOOBsCBmYWxzZSDjgpLov5TjgZkuCiAgICDlj4LogIM6IGh0dHA6Ly9oLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi55LmNvbS9kb2NzL2FsZ28vYy9jb25ncnVlbmNlLmh0bWwKKi8KYm9vbCBMaW5lYXJDb25ncnVlbmNlKGxvbmcgbG9uZyBhLCBsb25nIGxvbmcgYiwgbG9uZyBsb25nIG4sIGxvbmcgbG9uZyAmbSwgbG9uZyBsb25nICZyKQp7Cglsb25nIGxvbmcgeCA9IGEsIHkgPSBuLCB6ID0gYiwgdyA9IDAsIHMsIHRtcDsKCXdoaWxlICgocyA9IHggJSB5KSAhPSAwKSB7CgkJciA9IHggLyB5OwoJCXggPSB5OwoJCXkgPSBzOwoJCXRtcCA9IHc7CgkJdyA9IHogLSByICogdzsKCQl6ID0gdG1wOwoJfQoJaWYgKGIgJSB5ICE9IDApIHJldHVybiBmYWxzZTsKCXIgPSAodyAvIHkpICUgKG4gLyB5KTsKCWlmIChyIDwgMCkgciArPSBuIC8geTsKCW0gPSBuIC8geTsKCXJldHVybiB0cnVlOwp9Cgpsb25nIGxvbmcgU29sdmUobG9uZyBsb25nIG4pIHsKICAgIGxvbmcgbG9uZyBzID0gKDIgKiAoUG93TW9kKDE2LCBuLCBEKSAtIDEpKSAlIEQ7CiAgICBsb25nIGxvbmcgbSwgcjsKICAgIExpbmVhckNvbmdydWVuY2UoMywgcywgRCwgbSwgcik7CiAgICByZXR1cm4gcjsKfQoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKewogICAgY291dC5wcmVjaXNpb24oMTYpOwogICAgbG9uZyBsb25nIG4gPSA0OwogICAgY2luID4+IG47CgogICAgY291dCA8PCBTb2x2ZShuKSA8PCBlbmRsOwp9