from queue import Queue N, Q = map(int, input().split()) Q0 = Queue() for i in range(1, N + 1): Q0.put(i) Q1 = Queue() Q2 = Queue() while Q0.qsize() > 1: l = Q0.get() r = Q0.get() print(f"? {l} {l} {r} {r}") x = int(input()) if x == 1: Q1.put(l) Q2.put(r) elif x == 0: Q1.put(r) Q2.put(l) else: exit(-1) if Q0.qsize() == 1: m = Q0.get() Q1.put(m) Q2.put(m) while Q1.qsize() > 1: l = Q1.get() r = Q1.get() print(f"? {l} {l} {r} {r}") x = int(input()) if x == 1: Q1.put(l) elif x == 0: Q1.put(r) else: exit(-1) while Q2.qsize() > 1: l = Q2.get() r = Q2.get() print(f"? {l} {N} {r} {N}") x = int(input()) if x == 1: Q2.put(r) elif x == 0: Q2.put(l) else: exit(-1) L = Q1.get() R = Q2.get() print(f"! {L} {L} {R} {N}")