#include #define ll long long #define INF 1000000005 #define MOD 1000000007 #define EPS 1e-10 #define rep(i,n) for(int i=0;i<(int)n;++i) #define each(a, b) for(auto (a): (b)) #define all(v) (v).begin(),(v).end() #define fi first #define se second #define pb push_back #define show(x) cout<<#x<<" = "<<(x)<P; const int MAX_N = 100005; int main() { cin.tie(0); ios::sync_with_stdio(false); int l=10,h=1000000001; cout << "? " << 1000 << endl; int cnt = 0; int fres; cin >> fres; if(fres == 0){ cout << "! " << fres << endl; }else if(fres < 0){ h=1000; while(1){ cnt++; l--,h--; int mid = (l+h)/2; if(mid == l){ cout << "! " << mid + cnt << endl; return 0; } cout << "? " << mid << endl; int res; cin >> res; if(res == 0){ cout << "! " << mid + cnt << endl; return 0; }else if(res < 0){ h=mid; }else{ l=mid+1; } } }else{ l=1001; while(1){ cnt++; l--,h--; int mid = (l+h)/2; if(mid == l){ cout << "! " << mid + cnt << endl; return 0; } cout << "? " << mid << endl; int res; cin >> res; if(res == 0){ cout << "! " << mid + cnt << endl; return 0; }else if(res < 0){ h=mid; }else{ l=mid+1; } } } return 0; }