#include <bits/stdc++.h>
using namespace std;
int n, val[100005];
int f(int in) {
  int x, y, in2;
  if (val[in]) {
    in2 = in + n / 2;
    if (in2 > n) in2 -= n;
    return val[in] - val[in2];
  } else {
    cout << '?' << ' ' << in << "\n";
    cout.flush();
    cin >> x;
    val[in] = x;
    in2 = in + n / 2;
    if (in2 > n) in2 -= n;
    cout << '?' << ' ' << in2 << "\n";
    cout.flush();
    cin >> y;
    val[in2] = y;
    if (x == y) {
      cout << "! " << in;
      cout.flush();
      exit(0);
    } else
      return (x - y);
  }
}
int main() {
  int i, st, dr, mijl;
  cin >> n;
  st = 1;
  dr = 1 + n / 2;
  f(st);
  f(dr);
  for (i = 2; i <= 30; i++) {
    if (st <= dr) {
      mijl = (st + dr) / 2;
      if (f(st) * f(mijl) > 0)
        st = mijl + 1;
      else
        dr = mijl - 1;
    }
  }
  cout << "! " << -1;
  cout.flush();
  return 0;
}
