#P2501E. 小魏的送餐路线

小魏的送餐路线

题目背景

上回说到,由于就业形势的严峻,超级飞侠不得不送起了外卖。

题目描述

为了响应题目要求

为了提高市民的生活幸福质数,C城 决定建造一个 n×mn\times m 的网格状美食街,网格上的每个点都是一家店铺。

超级飞侠希望找出一条 优秀的取餐路线,以便更高效地送出外卖。请你确定路线是否存在,并给每个店铺设置编号,他会按照编号升序经过所有店铺。

定义满足以下条件的路线为 优秀的取餐路线

  1. 路线经过所有店铺 至少一次
  2. 店铺编号为 11n×mn \times m 的整数,互不重复,即构成一个排列;
  3. 对于任意编号 ii (1in×m1)(1 \leq i \leq n \times m - 1),编号为 iii+1i+1 的两个店铺位于 同一行或同一列
  4. 对于任意编号 ii (1in×m1)(1 \leq i \leq n \times m - 1),从编号 ii 的店铺出发,沿东、南、西、北中的某一方向直线前进(若走到边界则启动加速模式,花费 11 秒瞬移至该方向的反方向边界继续前进),到达编号 i+1i+1 的店铺所需时间恰好为 ii 秒(每移动一格花费 11 秒)。

输入格式

输入包含一行两个整数 n,mn, m $(1 \leq n, m \leq 2 \times 10 ^ 5, 1 \leq n \times m \leq 2 \times 10 ^ 5)$。

输出格式

如果不存在满足条件的路线,输出一个整数 1-1

如果存在满足条件的路线,输出 nn 行,每行 mm 个整数 ai,ja_{i,j}1ai,jn×m1 \leq a_{i,j} \leq n \times m),代表你为超级飞侠构造的店铺编号方案。

注意:若存在多种可行方案,输出 任意一种 即可。

4 5
1 9 14 15 8
2 10 3 16 17
20 19 4 5 18
12 11 13 6 7
4 6
-1
3 9
-1

说明

对于样例 11,超级飞侠的路线如下(ai,ja_{i,j} 表示坐标在第 ii 行第 jj 列的店铺):

  • 从编号 11(a1,1a_{1,1}) 开始;
  • 编号 11(a1,1a_{1,1})  往南走1秒 \underrightarrow{\text{~往南走1秒~}} 编号 22(a2,1a_{2,1});
  • 编号 22(a2,1a_{2,1})  往东走2秒 \underrightarrow{\text{~往东走2秒~}} 编号 33(a2,3a_{2,3});
  • 编号 33(a2,3a_{2,3})  往北走1秒 \underrightarrow{\text{~往北走1秒~}} 北方边界 (a1,3a_{1,3})  消耗1秒瞬移 \underrightarrow{\text{~消耗1秒瞬移~}} 反方向的南方边界 (a4,3a_{4,3})  往北走1秒 \underrightarrow{\text{~往北走1秒~}} 编号 44(a3,3a_{3,3}),即往北走 33 秒到达编号 44
  • \ldots

为了便于你更好理解,此处再给出编号 1212(a4,1a_{4,1}) 往东走 1212 秒到达编号 1313(a4,3a_{4,3}) 的过程:

编号 1212(a4,1a_{4,1})  往东走4秒 \underrightarrow{\text{~往东走4秒~}} 东方边界 (a4,5a_{4,5})  消耗1秒瞬移 \underrightarrow{\text{~消耗1秒瞬移~}} 反方向的西方边界 (a4,1a_{4,1})  往东走4秒 \underrightarrow{\text{~往东走4秒~}} 东方边界 (a4,5a_{4,5})  消耗1秒瞬移 \underrightarrow{\text{~消耗1秒瞬移~}} 反方向的西方边界 (a4,1a_{4,1})  往东走2秒 \underrightarrow{\text{~往东走2秒~}} 编号 1313(a4,3a_{4,3})。

方案不唯一。