#include using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); int a = 123; int back = -1001001001; int low = 0,high = 1000000; auto ask = [&](int x) -> void { cout << "? " << x << endl; if(back != -1001001001){ int memo = x; int near; near = abs(a-back)>=abs(a-x); cin >> near; if(near == 0) swap(back,x); int start = -1; for(int p=low; p<=high; p++){ if(abs(p-x) <= abs(p-back)){ if(start == -1) start = p; } else if(start != -1){high = p-1; break;} } low = start; back = memo; } else back = x; }; ask(high); while(low != high){ if(high <= back){ int d = back-high; ask(low-d); } else{ int d = low-back; ask(high+d); } } cout << "! " << low << endl; }