#include namespace solver{ bool query(int x){ std::cout << "? " << x << "\n"; std::string ret; std::cin >> ret; if(ret == "safe") return true; else return false; } void answer(int x){ std::cout << "! " << x << "\n"; } void solve(){ int N, D = 0; int lb = 0, ub = 1001; while(abs(lb - ub) > 1){ int mid = (lb + ub) / 2; if(query(mid)){ lb = mid; }else{ if(query(mid + 1)){ lb = mid; D = std::gcd(D, mid); }else{ ub = mid; } } } N = ub; std::cerr << N << " " << D << "\n"; int ans = 0; for(int i = 0; i < N; ++i){ if(D == 0 or i % D != 0){ ans = std::max(ans, i); } } answer(ans); } } int main(){ solver::solve(); return 0; }