#CF1991I. Grid Game

Grid Game

网格游戏

时间限制:5 秒
空间限制:256 MB

这是一道交互题。

给你一个 nnmm 列的网格。你需要将 11nmn\cdot m 之间的每个整数恰好填入网格的每个格子中(每个数出现一次)。

填好之后,你将与交互器在这个网格上进行一场游戏。双方轮流选择一个之前未被选过的格子,交互器先手。

第一回合,交互器可以选择网格中的任意一个格子。此后,任何一方选择的格子必须与至少一个之前已被选过的格子正交相邻(即共享一条边)。游戏进行到所有格子都被选完为止。

你的目标是:你选中的格子中的数字之和严格小于交互器选中的格子中的数字之和

输入格式

第一行包含一个整数 tt1t1001 \le t \le 100)—— 测试数据组数。

接下来 tt 行,每行包含两个整数 nnmm4n,m104 \le n, m \le 10)—— 网格的行数和列数。

交互方式

对于每组测试数据,你需要先输出 nn 行,每行 mm 个整数,表示你填入网格的数字。每个 11nmn\cdot m 的整数必须恰好出现一次。

然后游戏开始。交互器先手,双方轮流输出两个整数 iijj1in1\le i\le n1jm1\le j\le m),表示选择的格子坐标。你的程序需要根据当前的局面,正确地选择格子并输出。

如果你的任何输出不合法,评测系统会输出 -1 并结束程序,你将得到 Wrong Answer

当所有格子都被选完后,如果你选择的数字之和不严格小于交互器的和,评测系统同样会输出 -1

请记得在每次输出后刷新缓冲区。在 C++ 中使用 cout.flush();cout << endl;

本题禁止 hack。

样例

输入:

1
4 4

输出(示例):

2 3 4 10
12 6 11 15
5 13 16 8
9 7 1 14
2 4
4 3
3 3
3 1
1 3
1 1
2 3
3 2

(注意:样例中的交互过程仅为示意,不代表最优策略。)