H,W=map(int,input().split()) n=H f=[1,2] while 1: f+=[f[-1]+f[-2]] if f[-1]*2+f[-2]>=n: break f.reverse() L=f[0]*2+f[1] a=[-1]*(L+1) for i in range(L+1-n-1): a[~i]=-(L+1)+i l=0 r=L for m in f: m1=l+m m2=r-m if 1<=m1<=n and a[m1]==-1: print("?",m1,1) a[m1]=H**2+W**2-int(input()) if 1<=m2<=n and a[m2]==-1: print("?",m2,1) a[m2]=H**2+W**2-int(input()) if a[m1]=n: break f.reverse() L=f[0]*2+f[1] a=[-1]*(L+1) for i in range(L+1-n-1): a[~i]=-(L+1)+i l=0 r=L for m in f: m1=l+m m2=r-m if 1<=m1<=n and a[m1]==-1: print("?",1,m1) a[m1]=H**2+W**2-int(input()) if 1<=m2<=n and a[m2]==-1: print("?",1,m2) a[m2]=H**2+W**2-int(input()) if a[m1]