#include #define rep(i,n) for(int i = 0; i < (n); ++i) #define srep(i,s,t) for (int i = s; i < t; ++i) #define drep(i,n) for(int i = (n)-1; i >= 0; --i) using namespace std; typedef long long int ll; typedef pair P; #define yn {puts("Yes");}else{puts("No");} #define MAX_N 200005 int main() { int l = 10, r = 1001001001; int loop = 0; while(l + 1 < r){ loop++; if(loop % 2 == 1){ cout << "? 1" << endl; fflush(stdout); int x; cin >> x; if(x == 0){ cout << "! " << loop << endl; return 0; }else if(x == -1){ cout << "! " << loop - 1 << endl; return 0; }else{ l--; l = max(0,l); r--; } }else{ int m = (l+r)/2; cout << "? " << m << endl; fflush(stdout); int x; cin >> x; if(x == 0){ cout << "! " << max(0,m-1+loop) << endl; fflush(stdout); return 0; } if(x == 1){ l = m; }else{ r = m; } l--; l = max(0,l); r--; } } cout << "! " << l + loop<< endl; fflush(stdout); return 0; }