光芒开始愈发闪烁,其光辉变得脆弱——处于消逝的边缘。曾经维持岛屿的元素流动开始动摇,塑造这片土地的力量也开始消散。
在最后的尝试中,人们试图将一切归回原位。他们努力重新调整被打乱的图案,将岛屿重新编织在一起,恢复已经分崩离析的平衡。
见证他们保护岛屿的最后努力,并寻找他们未能找到的答案。
所有岛民都聚集在了一个地方。他们占领的土地被表示为一个大小为 $N \times M$ 的网格。从上数第 $r$ 行、从左数第 $c$ 列的单元格记为 $(r, c)$。
网格中的每个单元格都刻有一个图案,代表着人们所创造和保护的一切。然而,这些图案的原始顺序已经丢失,现在它们被随机排列。
人们相信,恢复左右(镜像)对称——使网格左右对称——将带回失去的秩序。
让我们考虑以下例子。为了方便起见,每个图案都用一个数字标记。在下图中,左侧的网格不是左右对称的。然而,通过适当重新排列图案,它可以转化为右侧左右对称的网格:
岛民们想知道,是否可以重新排列网格中的图案,使得最终的配置通过左右对称来恢复岛屿的秩序。
输入格式
第一行包含两个由空格分隔的整数 $N$ 和 $M$,表示网格的大小。
接下来的 $N$ 行,每行包含网格的初始状态。每行包含 $M$ 个整数 $A_{i1}, A_{i2}, \dots, A_{iM}$,其中 $A_{rc}$ 对应于表示单元格 $(r, c)$ 中图案的整数。
- $1 \le N \le 100$
- $1 \le M \le 100$
- $1 \le A_{ij} \le 10^4$ ($1 \le i \le N, 1 \le j \le M$)
输出格式
如果可以通过重新排列网格中的图案使其左右对称,则输出 YES。
否则,如果无法通过重新排列达到这种对称性,则输出 NO。
子任务
- 子任务 1(10 分):$M = 1$
- 子任务 2(20 分):$N = 1$,$M$ 为偶数
- 子任务 3(20 分):$N = 1$
- 子任务 4(10 分):$M$ 为偶数
- 子任务 5(40 分):无附加限制。
样例
输入样例 1
5 5 3 5 9 2 5 9 6 3 5 7 5 3 6 9 3 2 9 6 3 6 2 3 9 5 2
输出样例 1
YES
输入样例 2
4 1 1 4 2 3
输出样例 2
YES
输入样例 3
1 6 2 3 3 2 3 2
输出样例 3
NO
输入样例 4
1 7 2 3 2 2 3 1 2
输出样例 4
YES
输入样例 5
2 4 4 3 3 7 2 7 2 4
输出样例 5
YES
输入样例 6
2 4 4 3 3 7 2 9 2 4
输出样例 6
NO
输入样例 7
3 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
输出样例 7
NO
输入样例 8
2 5 1 5 6 2 5 3 2 4 1 3
输出样例 8
YES