#include <bits/stdc++.h>
using namespace std;
int GLL(long long& x) { return scanf("%lld", &x); }
int GI(int& x) { return scanf("%d", &x); }
int n;
long long query(int i) {
  cout << "? " << i << endl;
  long long value;
  cin >> value;
  return value;
}
void answer(int i) { cout << "! " << i << endl; }
int main() {
  GI(n);
  if (n % 4 != 0) {
    cout << "! -1" << endl;
    return 0;
  }
  int ACROSS = n / 2;
  long long v1 = query(1);
  long long v1across = query(1 + ACROSS);
  if (v1 == v1across) {
    answer(1);
    return 0;
  }
  int lo = 2;
  int hi = ACROSS;
  while (lo <= hi) {
    int mid = (lo + hi) / 2;
    long long vMid = query(mid);
    long long vMidAcross = query(mid + ACROSS);
    if (vMid == vMidAcross) {
      answer(mid);
      return 0;
    } else if ((v1 - v1across) * (vMid - vMidAcross) > 0) {
      lo = mid + 1;
    } else {
      hi = mid - 1;
    }
  }
  return 0;
}
