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]))