#abc269e. [abc269_e]Last Rook

[abc269_e]Last Rook

这是一道交互题。

现在有一个 n×nn \times n 的国际象棋棋盘,左上角为 (1,1)(1,1),右下角为 (n,n)(n,n),并且棋盘上已经放上了 n1n - 1 个互相不能攻击的车。

互相不能攻击的定义:在任何一行中最多只有一辆车,在任何一列中最多只有一辆车。

容易证明,此时该棋盘还可以放一辆车,使得所有的 nn 辆车互相不能攻击。

现在你想在一个位置上摆上一辆车,使得所有的 nn 辆车互相不能攻击,设这个位置为 (x,y)(x,y)。但是你不知道前 n1n - 1 辆车的位置。

不过你可以进行不超过 2020 次的形如 ? a b c d 的询问,这时系统会返回左上角为 (a,c)(a,c),右下角为 (b,d)(b,d) 的子矩阵中的车的数量。询问的前提是 1abn1 \leq a \leq b \leq n1cdn1 \leq c \leq d \leq n

你需要利用询问来求出 (x,y)(x,y)。当你得到结果后,你应该输出形如 ! x y 的形式,其中 xxyy 的定义如上述。

注意:

  • 询问过后立即清空缓冲区。如果你不这么做,你可能会 TLE。

  • 若你输出了无效询问(或回答),返回结果是不确定的。

  • 若你在回答后不立即结束程序,返回的结果是不确定的。

1n10001 \leq n \leq 1000