public class Euler710 {
    static final long kDiv = 1000000L;

    static long modFix(long x) {
        long y = x % kDiv;
        if (y < 0) {
            y += kDiv;
        }
        return y;
    }

    public static String solve() {
        long[] aMod = { 1, 1, 1, 2, 2, 3, 4 };
        long pow2 = 1;

        for (int n = 1;; ++n) {
            if ((n & 1) == 0) {
                pow2 = (pow2 * 2) % kDiv;
            }

            if (n >= 7) {
                long nextVal = aMod[(n - 1) % 7] +
                        2 * aMod[(n - 2) % 7] -
                        2 * aMod[(n - 3) % 7] -
                        aMod[(n - 4) % 7] +
                        aMod[(n - 5) % 7] +
                        aMod[(n - 6) % 7] -
                        aMod[(n - 7) % 7];
                aMod[n % 7] = modFix(nextVal);
            }

            long tMod = modFix(pow2 - aMod[n % 7]);
            if (n > 42 && tMod == 0) {
                return Integer.toString(n);
            }
        }
    }

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