H, W = list(map(int, input().split())) def nasu(i, j): print("?", i, j, flush = True) def koyaso(i, j): print("!", i, j, flush = True) def edist(a, b): x = (a[0] - b[0]) ** 2 y = (a[1] - b[1]) ** 2 return (x + y) if H * W == 1: koyaso(1, 1) exit() nasu(1, 1) d = int(input()) D = [] for i in range(H): for j in range(W): k = edist([1, 1], [i + 1, j + 1]) if k == d: D.append([i + 1, j + 1]) a, b = D[0] if len(D) == 1: koyaso(a, b) exit() nasu(a, b) d = int(input()) for i, j in D: k = edist([a, b], [i, j]) if k == d: koyaso(i, j) break