题号:NC19863
时间限制:C/C++/Rust/Pascal 4秒,其他语言8秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld
题目描述
小t又发现了一个有趣的游戏--爆瓶子。伟大的小t发现不止冰露的瓶子可以爆,一切瓶子都是可以爆的。小m和小s感觉这很有意思,于是也加入了游戏。
为了可以愉快的爆瓶子,他们决定将瓶子排成一个矩形。已知他们有n种瓶子并且每种瓶子都有n个,为了好看要求每行每列都不能有种类相同的瓶子。热爱劳动的小t已经摆好了m行,请你帮助他们完成剩下n-m行的摆设。由于小m是毒瘤,他要求你输出字典序最小的方案。注意瓶子的种类是按1~n排的。
注意矩阵的字典序是这样定义的:
如果有矩阵a1 a2 a3
a4 a5 a6
则它的字典序相当于a1 a2 a3 a4 a5 a6的字典序。
输入描述:
输入T表示有T组数据
对于每组数据
输入n和m,n和m的意义见题面。
之后m行每行n个数,表示某个位置上的瓶子的种类
输出描述:
对于每组数据输出字典序最小的方案
示例1
输入
复制
2
3 2
3 2 1
1 3 2
4 2
1 4 3 2
2 1 4 3
备注:
对于20%的数据1<=m<=n<=5
对于40%的数据1<=m<=n<=15
对于100%的数据1<=m<=n<=220,T<=3