#CF2118E. 网格染色

网格染色

E. 网格染色
每次测试时间限制:2 秒
内存限制:256 兆字节

有一个 n×mn \times m 的网格,初始时所有格子都是白色。你需要逐个将所有格子染色。当你染色一个格子后,所有已染色格子中距离它最远的那些格子会受到一次“惩罚”。
请找到一个染色顺序,使得任意一个格子的惩罚次数不超过 33 次。

注意:nnmm 都是奇数。

距离度量采用切比雪夫距离,当距离相同时,用曼哈顿距离打破平局。
形式化定义:对于一个格子 (x1,y1)(x_1, y_1),格子 (x2,y2)(x_2, y_2) 比格子 (x3,y3)(x_3, y_3) 更远,当且仅当以下条件之一成立:

  1. $\max(|x_1 - x_2|, |y_1 - y_2|) > \max(|x_1 - x_3|, |y_1 - y_3|)$
  2. $\max(|x_1 - x_2|, |y_1 - y_2|) = \max(|x_1 - x_3|, |y_1 - y_3|)$ 且 $|x_1 - x_2| + |y_1 - y_2| > |x_1 - x_3| + |y_1 - y_3|$

可以证明至少存在一种染色顺序。


输入
每个测试点包含多个测试用例。第一行一个整数 tt1t1001 \le t \le 100),表示测试用例的数量。
每个测试用例一行,包含两个奇数 nnmm1n,m49991 \le n, m \le 4999),表示网格的行数和列数。
保证所有测试用例的 nmn \cdot m 之和不超过 50005000


输出
对于每个测试用例,输出 nmn \cdot m 行,第 ii 行包含你第 ii 步要染的格子坐标。如果有多解,输出任意一个即可。

示例输出中的空行只是为了提高可读性,你不需要输出空行。


样例输入

3
3 3
1 1
1 5

样例输出

2 1
2 3
2 2
1 1
3 2
3 3
3 1
1 3
1 2

1 1

1 2
1 4
1 5
1 1
1 3