#include <bits/stdc++.h>
using namespace std;
const int maxn = 100005;
const int mod = 19260817;
const long long INF = 1e18;
const double eps = 1e-9;
int n, m;
int a[maxn];
int query(int x) {
  printf("? %d\n", x);
  fflush(stdout);
  scanf("%d", &x);
  return x;
}
int main() {
  scanf("%d", &n);
  int gap = n / 2;
  a[1] = query(1);
  a[1 + gap] = query(1 + gap);
  if (a[1] == a[1 + gap]) {
    printf("! %d\n", 1);
    fflush(stdout);
    return 0;
  }
  int sig = 0;
  if (a[1] > a[1 + gap]) sig = 1;
  int l = 2, r = gap;
  while (l <= r) {
    int mid = (l + r) / 2;
    a[mid] = query(mid);
    a[mid + gap] = query(mid + gap);
    if (a[mid] == a[mid + gap]) {
      printf("! %d\n", mid);
      fflush(stdout);
      return 0;
    }
    if (sig + (a[mid] > a[mid + gap]) == 1)
      r = mid - 1;
    else
      l = mid + 1;
  }
  printf("! -1\n");
  fflush(stdout);
}
