from functools import cmp_to_key N,Q=map(int,input().split()) A=[i+1 for i in range(N)] A_=[2,3,2,3,4,5] def ans(a,b,c,d): print('?',a,b,c,d,flush=True) X=int(input()) return X if A_[a-1:b] < A_[c-1:d]: print(0) return 0 else: print(1) return 1 mi=[] ma=[] for i in range(1,N,2): X=ans(i,N,i+1,N) if X==0: mi.append(i) ma.append(i+1) else: mi.append(i) ma.append(i+1) mians=mi[0] for i in range(1,len(mi)): X=ans(mians,mians,mi[i],mi[i]) if X==1: mians=mi[i] maans=ma[0] for i in range(1,len(ma)): X=ans(mians,N,mi[i],N) if X==0: maans=mi[i] print('!',mians,mians,maans,N)