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

g = [[1 for _ in range(W)] for _ in range(H)]

print("?", 0, 0)
d = int(input())

c = []
for i in range(H):
    for j in range(W):
        if i ** 2 + j ** 2 != d:
            g[i][j] = 0
        
        if g[i][j]:
            c.append((i, j))

if len(c) == 1:
    exit(print("!", c[0][0], c[0][1]))



print("?", H - 1, W - 1)
d = int(input())

c = []
for i in range(H):
    for j in range(W):
        if (H - 1 - i) ** 2 + (W - 1 - j) ** 2 != d:
            g[i][j] = 0
        
        if g[i][j]:
            c.append((i, j))

if len(c) == 1:
    exit(print("!", c[0][0], c[0][1]))




print("?", 0, W - 1)
d = int(input())

c = []
for i in range(H):
    for j in range(W):
        if i ** 2 + (W - 1 - j) ** 2 != d:
            g[i][j] = 0
        
        if g[i][j]:
            c.append((i, j))

if len(c) == 1:
    exit(print("!", c[0][0], c[0][1]))




print("?", H - 1, 0)
d = int(input())

c = []
for i in range(H):
    for j in range(W):
        if (H - 1 - i) ** 2 + j ** 2 != d:
            g[i][j] = 0
        
        if g[i][j]:
            c.append((i, j))

if len(c) == 1:
    exit(print("!", c[0][0], c[0][1]))