import static java.lang.System.err; public class Main { public static void main(String[] args) { java.io.PrintWriter out = new java.io.PrintWriter(System.out, true); new Main(out); out.flush(); err.flush(); } /* * N=3の時1回で、これは次のように判断できる * (0, 1)を聞くと1が返る * (0, 2)を聞くと1が返る * (1, 2)を聞くと2が返る * なるほど、確かに当てられる * P_x=0のとき、クエリではyが返ってくる * P_xもP_yも0でないとき、xでもyでもない値になる * なるほどね */ public Main(java.io.PrintWriter out) { try (java.util.Scanner sc = new java.util.Scanner(System.in)) { int N = sc.nextInt(); for (int i = 0;i < N / 2;++ i) { out.println("? " + (i << 1) + " " + (i << 1 | 1)); int z = sc.nextInt(); if (z >> 1 == i) { out.println("! " + (z ^ 1)); return; } } out.println("! " + (N - 1)); } } }