#include <bits/stdc++.h>
using namespace std;
template <typename _T>
inline void _DBG(const char *s, _T x) {
  cerr << s << " = " << x << "\n";
}
template <typename _T, typename... args>
void _DBG(const char *s, _T x, args... a) {
  while (*s != ',') cerr << *s++;
  cerr << " = " << x << ',';
  _DBG(s + 1, a...);
}
int n;
int ask(int q) {
  cout << "? " << q % n + 1 << "\n";
  fflush(stdout);
  int a;
  cin >> a;
  return a;
}
void qui(int a) {
  cout << "! " << a << "\n";
  fflush(stdout);
  exit(0);
}
int main() {
  cin >> n;
  if ((n / 2) % 2 == 1) {
    qui(-1);
  }
  int a = ask(0), b = ask(n / 2);
  if (a == b) {
    qui(1);
  }
  int l = 1, r = n / 2 - 1;
  while (l <= r) {
    int m = (l + r) / 2;
    int c = ask(m), d = ask(m + n / 2);
    if (c == d) {
      qui(m % n + 1);
    }
    if ((a < b && c < d) || (a > b && c > d)) {
      l = m + 1;
    } else {
      r = m - 1;
    }
  }
  assert(false);
  return 0;
}
