OK=0
NG=10**9+1

c=0

while True:
    if c%2==0:
        print("?",1,flush=True)
        x=int(input())

        if x==-1:
            print("!",c,flush=True)
            break
        elif x==0:
            print("!",c+1,flush=True)
            break
        OK-=1
        NG-=1
    else:
        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