#include <bits/stdc++.h>
using namespace std;

const int INF = 1e9;
const int MAXN = 1e5;

int a[MAXN + 10];

int query(int i) {
   if(a[i]) return a[i];

   cout << "? " << i << endl;
   
   int a;
   cin >> a;

   return a;
}

void answer(int k) {
   cout << "! " << k << endl;
}

int solve(int n) {
   int lo = 1, hi = n;
   while(lo < hi) {
      int m = (lo + hi) / 2;

      int x = query(m - 1);
      int y = query(m);
      int z = query(m + 1);

      if(x > y && y < z) {
         return m;
      } else if(x > y && y > z) {
         lo = m + 1;
      } else if(x < y && y > z) {
         lo = m + 1;
      } else { // x < y && y < z
         hi = m - 1;
      }
   }

   return lo;
}

int main() {
   int n; cin >> n;
   a[0] = a[n+1] = INF;

   int res = solve(n);
   answer(res);
}
