def ask(x, y): print("?", x + 1, y + 1, flush=True) return int(input()) - 1 def judge(x): print("!", x + 1) exit() n = int(input()) A = [i for i in range(n)] vs = [-1] * n while len(A) >= 2: B = [] while len(A) >= 2: x = A.pop() y = A.pop() z = ask(x, y) B.append(z) if x == z: vs[y] = x else: vs[x] = y A += B x = A[0] A = [] for i in range(n): if vs[i] == x: A.append(i) while len(A) >= 2: B = [] while len(A) >= 2: x = A.pop() y = A.pop() z = ask(x, y) B.append(z) if x == z: vs[y] = x else: vs[x] = y A += B judge(A[0])