矩阵最大字典序

题目描述

给定一个大小为 n×mn \times m 的矩阵 AA,其第 ii 行第 jj 列的元素记为 Ai,jA_{i,j}

你可以对矩阵进行任意次下述操作:

  • 选择两个不相邻的元素进行交换。
  • 形式化地,选择两个坐标 (i1,j1)(i_1, j_1)(i2,j2)(i_2, j_2),它们必须满足曼哈顿距离 i1i2+j1j21|i_1 - i_2| + |j_1 - j_2| \neq 1。然后交换这两个位置的元素值。

你的任务是,通过任意次操作,使得最终得到的矩阵的字典序最大。

一个矩阵 BB 的字典序大于另一个矩阵 CC,当且仅当将两个矩阵按行优先展开成一维序列后(即 $B_{1,1}, B_{1,2}, \dots, B_{1,m}, B_{2,1}, \dots, B_{n,m}$),序列 BB 的字典序大于序列 CC

输入格式

第一行包含两个正整数 n,mn, m,表示矩阵的行数和列数。

接下来 nn 行,每行包含 mm 个整数,表示矩阵 AA 的元素 Ai,jA_{i,j}

输出格式

输出 nnmm 列,表示经过操作后能够得到的字典序最大的矩阵。每行的整数之间用一个空格隔开。

样例

样例输入

2 3
1 2 3
4 5 6

样例输出

6 5 4
3 2 1

提示

数据范围与约定

对于 100%100\% 的数据,保证 2n,m5002 \le n, m \le 500,且 1Ai,j1091 \le A_{i,j} \le 10^9

相关