N, Q = map(int, input().split()) smaller, larger = [], [] for i in range(0, N, 2): print("?", i + 1, N, i + 2, N) X = int(input()) if X == 1: smaller.append(i) larger.append(i + 1) elif X == 0: smaller.append(i + 1) larger.append(i) else: exit() smallest = smaller[0] for i in range(1, len(smaller)): print("?", smallest + 1, N, smaller[i] + 1, N) X = int(input()) if X == 0: smallest = smaller[i] elif X == 1: pass else: exit() largest = larger[0] for i in range(1, len(larger)): print("?", largest + 1, N, larger[i] + 1, N) X = int(input()) if X == 1: largest = larger[i] elif X == 0: pass else: exit() print("!", smallest + 1, smallest + 1, largest + 1, N)