N,Q = map(int, input().split()) big = [] small = [] for i in range(N//2): l = 2*i+1 l_ = 2*i+2 print("?", l, N, l_, N) X = int(input()) assert X != -1 if X == 1: small.append(l) big.append(l_) else: small.append(l_) big.append(l) maximum = big[0] for i in range(1,N//2): print("?",maximum,N,big[i],N) X = int(input()) assert X != -1 if X == 1: maximum = big[i] minimum = small[0] for i in range(1,N//2): print("?",minimum,minimum,small[i],small[i]) X = int(input()) assert X != -1 if X == 0: minimum = small[i] print("!",minimum,minimum,maximum,N)