N,Q = map(int,input().split()) H = [] L = [] for i in range(1,N,2): print(f"? {i} {N} {i+1} {N}") x = int(input()) if x==1: L.append(i) H.append(i+1) else: L.append(i+1) H.append(i) while len(H)>1: i1 = H.pop() i2 = H.pop() print(f"? {i1} {N} {i2} {N}") x = int(input()) if x==1: H.append(i2) else: H.append(i1) while len(L)>1: i1 = L.pop() i2 = L.pop() print(f"? {i1} {N} {i2} {N}") x = int(input()) if x==1: L.append(i1) else: L.append(i2) if N%2==1: print(f"? {H[0]} {N} {N} {N}") x = int(input()) if x==1: H[0] = N print(f"? {L[0]} {N} {N} {N}") x = int(input()) if x==0: L[0] = N print(f"! {L[0]} {L[0]} {H[0]} {N}")