Logo Universal Online Judge

UOJ

时间限制:2 s 空间限制:256 MB
Statistics

题目描述

有 $m$ 个长度为 $n$ 排列 $q_1,\dots,q_m$,现在你需要自己定义 $k$ 个置换,使得对于任意一个 $q_i$,都可以从初始排列 $(1,2,\dots,n)$ 以某种顺序应用这 $k$ 个置换若干次得到。

求 $k$ 的最小值是多少,并给出构造方案。

输入格式

首先给出两个整数 $m,n$。然后 $m$ 行每行 $n$ 个数,表示 $q_1,\dots,q_m$。

输出格式

首先输出一个数 $k$,表示构造的置换个数。随后 $k$ 行每行 $n$ 个数输出构造的置换。若有多种答案,输出任意一种即可。

样例

样例 #1

输入

3 3
2 1 3
1 3 2
2 3 1

输出

2
2 1 3
1 3 2

(其他合法方案亦可)

样例 #2

输入

3 10
3 4 5 6 7 8 9 10 1 2
6 7 8 9 10 1 2 3 4 5
4 5 6 7 8 9 10 1 2 3

输出

1
2 3 4 5 6 7 8 9 10 1

(其他合法方案亦可)

数据范围

  • 对于 $10\%$ 的数据,$1\leq n\leq3$;
  • 对于另外 $20\%$ 的数据,$1\leq n\leq10$;
  • 对于另外 $20\%$ 的数据,$1\leq n\leq70$;
  • 对于 $100\%$ 的数据,$1\leq n\leq300$,$1\leq m\leq500$。