""" nを特定する必要あり 1<=n<=10**3 2<=d<=10**9 叩くいた合計がdの倍数ならout 普通に二分探索 """ class Ask: def __init__(self): self.count=0 self.responce=[None]*1001 def ask(self,x): if self.responce[x] is None: print("?",x) self.count+=1 self.responce[x]=input() return self.responce[x] # out三連続はD=2のときだけ # out二連続はNとD倍数が隣り合うとき return self.responce[x] ask=Ask() l,r=0,1001 # nは[l,r)の範囲内にある while r-l>3: x=(l+r)//2 #print(f"[{l},{r})",x) ans=ask.ask(x) if ans=="safe":# nはx+1以上 l,r=x+1,r continue ans=ask.ask(x+1) if ans=="out":# nはx以上 l,r=l,x+1 else: l,r=x+2,r ret=max(0,l) for n in range(max(l-2,1),r): ans=ask.ask(n) if ans=="safe": ret=n print("!",ret) #print(ask.count) """ n=502 d=50 n=499 d=2 """