#include using namespace std; typedef long long ll; #define REP(i,n) for(int i=0,_n=(int)(n);i<_n;++i) #define ALL(v) (v).begin(),(v).end() #define CLR(t,v) memset(t,(v),sizeof(t)) templateostream& operator<<(ostream& os,const pair&a){return os<<"("<void pv(T a,T b){for(T i=a;i!=b;++i)cout<<(*i)<<" ";cout<void chmin(T&a,const T&b){if(a>b)a=b;} templatevoid chmax(T&a,const T&b){if(a> s; res = (s == "safe"); // int N = 1000; // int D = 10; // if (x >= N || x % D == 0) // res = 0; // else // res = 1; return memo[x] = res; } int main() { CLR(memo, -1); int hi = 1000; int lo = 0; while (hi - lo > 2) { int mi = (hi + lo) / 2; if (query(mi) == 0 && query(mi+1) == 0) { hi = mi; } else { lo = mi; } } int ans = hi; while (query(ans) == 0) ans--; cout << "! " << ans << endl; return 0; }