import sys input = lambda :sys.stdin.readline()[:-1] ni = lambda :int(input()) na = lambda :list(map(int,input().split())) yes = lambda :print("yes");Yes = lambda :print("Yes");YES = lambda : print("YES") no = lambda :print("no");No = lambda :print("No");NO = lambda : print("NO") ####################################################################### def query(l, r, ll, rr): print("?", l+1, r, ll+1, r, flush=True) x = ni() if x == -1: exit() return x def ask(i, j):#a[i:n] < a[j:n] return query(i, n, j, n) n, q = na() l, r = 0, 1 if not ask(0, 1): l, r = r, l from random import randint for i in range(2, n): if randint(0, 1): if ask(r, i): r = i else: if ask(i, l): l = i else: if ask(i, l): l = i else: if ask(r, i): r = i print("!", l+1, l+1, r+1, n, flush=True)