#include <bits/stdc++.h>
using namespace std;
bool flag;
int n;
void ask(int l, int r, int L1, int L2, int R1, int R2) {
  if (flag) return;
  if (L1 == L2) {
    printf("! %d\n", l);
    flag = 1;
    return;
  }
  if (R1 == R2) {
    printf("! %d\n", r);
    flag = 1;
    return;
  }
  if (r - l <= 1) return;
  int LL, RR;
  printf("? %d\n", (l + r) >> 1);
  fflush(stdout);
  scanf("%d", &LL);
  printf("? %d\n", (((l + r) >> 1) + n / 2 - 1) % n + 1);
  fflush(stdout);
  scanf("%d", &RR);
  if (L1 >= L2 && LL <= RR || L1 <= L2 && LL >= RR)
    ask(l, l + r >> 1, L1, L2, LL, RR);
  if (LL >= RR && R1 <= R2 || LL <= RR && R1 >= R2)
    ask(l + r >> 1, r, LL, RR, R1, R2);
}
int main() {
  scanf("%d", &n);
  printf("? %d\n", 1);
  fflush(stdout);
  int L, R;
  scanf("%d", &L);
  printf("? %d\n", n / 2 + 1);
  fflush(stdout);
  scanf("%d", &R);
  ask(1, n / 2 + 1, L, R, R, L);
  if (!flag) printf("! -1\n");
}
