#include using namespace std; using ll = long long; using ld = long double; using ull = unsigned long long; #define rep(i,n) for(ll i=0;i T div_floor(T a, T b) { return a / b - ((a ^ b) < 0 && a % b); } template T div_ceil(T a, T b) { return a / b + ((a ^ b) > 0 && a % b); } template inline bool chmin(T &x, U y) { return (y < x) ? (x = y, true) : false; } template inline bool chmax(T &x, U y) { return (x < y) ? (x = y, true) : false; } void solve() { ll ans=459; ll before=0; auto query=[&](ll x)->ll { cout<<"? "<>res; // if (abs(before-ans)>=abs(x-ans)){ // res=1; // } // else res=0; before=x; return res; }; cout<<"? "<1){ ll mid=(ok+ng)/2; if (before<=mid){ ll x=2*mid-before+1; ll res=query(x); if (res==1){ ng=mid; } else{ ok=mid; } } else{ ll x=2*mid-before; ll res=query(x); if (res==1){ ok=mid; } else{ ng=mid; } } } cout<<"! "<