#NC2510I. 矩阵

矩阵

题目描述

Piggy 有一个 n×m n \times m 循环 矩阵。这意味着第 n n 行与第 11 行是相邻的,且第 m m 列与第 11 列是相邻的。你需要用 11n×m n \times m 的整数填充这个矩阵使得它满足以下条件:

  • 每个 11nm nm (闭区间)的整数都在矩阵中出现了恰好一次。也就是说,恰好一个矩阵中的格子包含了每个整数。
  • 对于每个 1inm1 1 \leq i \leq nm - 1 ,包含 i i 的格子与包含 i+1 i + 1 的格子要么在同一行,要么在同一列。
  • 对于每个 1inm1 1 \leq i \leq nm - 1 ,如果 Piggy 初始在包含 i i 的格子处,那么存在左、右、上和下中的一个方向,使得若 Piggy 朝着那个方向移动恰好 i i 格,他可以到达包含 i+1 i + 1 的格子处。注意矩阵是循环的,这意味着如果他在第 n n 行向下移动一格,会移动到第 11 行,如果在第 m m 列向右移动一格,会移动到第 11 列,反之亦然。

构造一个合法的矩阵,或者报告不存在合法的矩阵。

输入格式

一行包含两个正整数 n,m n, m 1n,m,nm106 1 \leq n, m, nm \leq 10^6 )。

输出格式

第一行输出 YESNO,表示你是否找到了一个合法的矩阵。如果答案是 YES,接下来输出 n n 行,每行包含 m m 个整数,描述你构造的合法矩阵。若有多个合法矩阵,输出任意一个都算作正确。

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