N,Q = map(int, input().split()) big = [] small = [] for i in range(N//2): l = 2*i+1 l_ = 2*i+2 print("?", l, l, l_, l_) 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,maximum,big[i],big[i]) 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)