N, Q = map(int, input().split()) smaller, larger = [], [] for i in range(1, N + 1, 2): print("?", i, N, i + 1, 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, smallest, smaller[i], smaller[i]) 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, N, larger[i], N) X = int(input()) if X == 1: largest = larger[i] elif X == 0: pass else: exit() print("!", smallest, smallest, largest, N)