#include <bits/stdc++.h>
using namespace std;
map<int, int> cache;
int get(int pos) {
  if (cache.count(pos) == 0) {
    cout << "? " << pos << endl;
    int x;
    cin >> x;
    cache[pos] = x;
  }
  return cache[pos];
}
int main() {
  int n;
  cin >> n;
  if (n % 4 != 0) {
    cout << "! -1" << endl;
    return 0;
  }
  int lb = 1, ub = n / 2;
  while (lb <= ub) {
    int mid = (lb + ub) / 2;
    int a = get(mid);
    int b = get(mid + n / 2);
    if (a == b) {
      cout << "! " << mid << endl;
      return 0;
    }
    int c = get(lb);
    int d = get(lb + n / 2);
    if (c == d) {
      cout << "! " << lb << endl;
      return 0;
    }
    if ((a < b && c < d) || (a > b && c > d)) {
      lb = mid + 1;
    } else {
      ub = mid - 1;
    }
  }
  assert(false);
  return 0;
}
