import java.math.BigInteger;

public class Euler669 {

    static long knightFromRight(long rightPos, long fk, long fkMinus1) {
        if (rightPos == 1)
            return fk;

        long m = rightPos / 2;

        BigInteger bm = BigInteger.valueOf(m);
        BigInteger bFkMinus1 = BigInteger.valueOf(fkMinus1);
        BigInteger bFk = BigInteger.valueOf(fk);

        long t = bm.multiply(bFkMinus1).remainder(bFk).longValue();

        long v;
        if (rightPos % 2 == 0) {
            v = t;
        } else {
            v = (fk - t) % fk;
        }

        if (v == 0) {
            v = fk;
        }

        return v;
    }

    public static String solve() {
        long[] fib = new long[85];
        fib[1] = 1;
        fib[2] = 1;
        for (int i = 3; i < 85; ++i) {
            fib[i] = fib[i - 1] + fib[i - 2];
        }

        long n = fib[83];
        long leftPos = 10000000000000000L;
        long rightPos = n - leftPos + 1;

        long ans = knightFromRight(rightPos, n, fib[82]);
        return Long.toString(ans);
    }

    public static void main(String[] args) {
        System.out.println(solve());
    }
}
