OK=0
NG=10**9+1

c=0

while True:
    mid=(OK+NG)//2

    print("?",mid,flush=True)
    x=int(input())

    if x==-1:
        NG=mid
        OK-=1
    elif x==1:
        OK=mid-1
        NG-=1
    else:
        print("!",max(0,mid+c),flush=True)
        break
    OK=max(0,OK)
    NG=max(0,NG)

    c+=1