H,W=map(int,input().split())

def query(i,j):
    print('?',i+1,j+1)
    res=int(input())
    return res

def answer(i,j):
    print('!',i+1,j+1)
    exit()

G1=[[0]*W for _ in range(H)]
G2=[[0]*W for _ in range(H)]
for i in range(H):
    for j in range(W):
        G1[i][j]=i**2+j**2
        G2[i][j]=(H-1-i)**2+j**2

if H==1 and W==1:
    query(0,0)
    answer(0,0)
    exit()

if H==1 or W==1:
    d1=query(0,0)
    for i in range(H):
        for j in range(W):
            if G1[i][j]==d1:
                answer(i,j)
    exit()

d1=query(0,0)
d2=query(H-1,0)

for i in range(H):
    for j in range(W):
        if G1[i][j]==d1 and G2[i][j]==d2:
            answer(i,j)