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