N, Q = map(int, input().split()) mins = [] maxs = [] for i in range(N // 2): print('?', 2 * i + 1, 2 * i + 1, 2 * i + 2, 2 * i + 2, flush = True) if input() == '1': mins.append(2 * i + 1) maxs.append(2 * i + 2) else: mins.append(2 * i + 2) maxs.append(2 * i + 1) # ここまで500回 now_min = mins[0] for i in mins[1:]: print('?', i, i, now_min, now_min, flush = True) if input() == '1': now_min = i # ここまで999回 now_max = maxs[0] for i in maxs[1:]: print('?', now_max, N, i, N, flush = True) if input() == '1': now_max = i # ここまで1498回 print('!', now_min, now_min, now_max, N, flush = True)