N, Q = map(int, input().split())

def check(l0, r0, l1, r1):
    print("?", l0, r0, l1, r1)
    x = int(input())
    if x == -1:
        exit()
    return x == 1

L = list(range(1, N + 1))
L2 = []
L3 = []
while L:
    x = L.pop()
    if L:
        y = L.pop()
        if check(x, N, y, N):
            L2.append(x)
            L3.append(y)
        else:
            L2.append(y)
            L3.append(x)
    else:
        L2.append(x)
        L3.append(x)

L = L2
while len(L) > 1:
    L2 = []
    while L:
        x = L.pop()
        if L:
            y = L.pop()
            if check(x, x, y, y):
                L2.append(x)
            else:
                L2.append(y)
        else:
            L2.append(x)
    L = L2
ans = [L[0], L[0]]

L = L3
while len(L) > 1:
    L2 = []
    while L:
        x = L.pop()
        if L:
            y = L.pop()
            if check(x, N, y, N):
                L2.append(y)
            else:
                L2.append(x)
        else:
            L2.append(x)
    L = L2
ans += [L[0], N]
print("!", *ans)