#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 14;
int n, a[maxn];
bool asked[maxn];
int val(int i) {
  static int cnt = 0;
  i %= n;
  if (asked[i]) return a[i];
  assert(++cnt <= 60);
  asked[i] = 1;
  cout << "? " << i + 1 << endl;
  cin >> a[i];
  if (i < n / 2 && asked[i + n / 2] && a[i] == a[i + n / 2]) {
    cout << "! " << i + 1 << '\n';
    exit(0);
  }
  if (i >= n / 2 && asked[i - n / 2] && a[i] == a[i - n / 2]) {
    cout << "! " << i + 1 << '\n';
    exit(0);
  }
  return a[i];
}
int f(int i) { return val(i) - val(i + n / 2); }
int main() {
  ios::sync_with_stdio(0), cin.tie(0);
  cin >> n;
  if (n / 2 % 2) return cout << "! -1\n", 0;
  int lo = 0, hi = n / 2;
  while (hi - lo > 1) {
    int mid = (lo + hi) / 2;
    cerr << lo << ' ' << hi << '\n';
    if ((long long)f(lo) * f(mid) < 0)
      hi = mid;
    else
      lo = mid;
  }
  cerr << lo << '\n';
  if (val(lo) == val(lo + n / 2))
    cout << "! " << lo + 1 << '\n';
  else
    cout << "! -1\n";
}
