HX1257G. 列表排序

提交12 通过9
通过率75%
时间限制1000ms
内存限制128MiB

题目描述

题目描述

给定一个 nn 行 mm 列的整数列表。

列表中每一行的 mm 个整数都是一个 1∼m1\sim m 的排列。

现在,你可以对该列表执行以下两种操作:

  • 选择一行中的两个整数并交换它们。此操作,每行最多只能执行一次。

  • 选择列表中的两列并交换它们。此操作,最多只能执行一次。

不难发现,你最多可以进行 n+1n+1 次操作,最少可以进行 00 次操作,所有操作的具体执行顺序随意。

我们的目标是:通过执行上述操作,使得最终列表中每一行的 mm 个整数都能按照 1,2,…,m1,2,…,m 的顺序排列。

请你判断,目标是否能够达成。

输入格式

第一行包含两个整数 n,mn,m。

接下来 nn 行,每行包含 mm 个整数,用来表示整数列表。

输出格式

如果目标能够达成,则输出 YES,否则输出 NO。

2 4
1 3 2 4
1 3 4 2
YES
1 1
1
YES
2 4
4 3 2 1
2 1 4 3
NO

提示

数据范围

所有测试点满足 1≤n,m≤201\le n,m\le 20。

保证每行的 mm 个整数都是一个 1∼m1\sim m 的排列。