#include <bits/stdc++.h>
using namespace std;
const int mod = 1000000007;
const int N = 3100;
void MOD(long long &a) {
  if (a >= mod) a -= mod;
}
void MOD(long long &a, long long c) {
  if (a >= c) a -= c;
}
void ADD(long long &a, long long b) {
  a += b;
  MOD(a);
}
void ADD(long long &a, long long b, long long c) {
  a += b;
  MOD(a, c);
}
long long qpow(long long a, long long b) {
  long long ans = 1;
  while (b) {
    if (b & 1) ans = ans * a % mod;
    a = a * a % mod;
    b /= 2;
  }
  return ans;
}
long long qpow(long long a, long long b, long long c) {
  long long ans = 1;
  while (b) {
    if (b & 1) ans = ans * a % c;
    a = a * a % c;
    b /= 2;
  }
  return ans;
}
int n;
int ques(int pos) {
  int q1, q2;
  printf("? %d\n", pos);
  fflush(stdout);
  scanf("%d", &q1);
  printf("? %d\n", (pos + n / 2 - 1) % n + 1);
  fflush(stdout);
  scanf("%d", &q2);
  if (q1 == q2) {
    printf("! %d\n", pos);
    fflush(stdout);
    return 0;
  }
  return q1 > q2 ? 1 : -1;
}
int main() {
  scanf("%d", &n);
  int ju = ques(1);
  int l = 1, r = n / 2 + 1;
  if (ju == 0) return 0;
  while (l + 1 < r) {
    int m = l + r >> 1;
    int j = ques(m);
    if (j == 0) return 0;
    if (j == ju)
      l = m;
    else
      r = m;
  }
  printf("! -1\n");
  fflush(stdout);
}
