#1060. 拉丁方阵

拉丁方阵

题目描述

一个N×N的拉丁正方形含有整数1\red{1} ~ N\red{N},且在任意的行或列中都不出现重复数据,一种可能的6×6拉丁正方形如下:

6 3 1 4 2 5

1 4 5 6 3 2

5 6 2 1 4 3

2 1 3 5 6 4

3 5 4 2 1 6

4 2 6 3 5 1

该拉丁方阵的产生方法是:当给出第一行数后,就决定了各数在以下各行的位置,即第一行数为各数在每行中列数的索引表(首先找到某数所在位置(下标),然后以此数在序列中的位置为起始)。

比如上例中:

第1行的第1\red{1}个数为6\red{6},则该数在1\red{1} ~ 6\red{6}行的列数依次为1,4,2,5,6,3 第1行的第2\red{2}个数为3\red{3},则该数在1\red{1} ~ 6\red{6}行的列数依次为2,5,6,3,1,4 第1行的第3\red{3}个数为1\red{1},则该数在1\red{1} ~ 6\red{6}行的列数依次为3,1,4,2,5,6 第1行的第4\red{4}个数为4\red{4},则该数在1\red{1} ~ 6\red{6}行的列数依次为4,2,5,6,3,1 第1行的第5\red{5}个数为2\red{2},则该数在1\red{1} ~ 6\red{6}行的列数依次为5,6,3,1,4,2 第1行的第6\red{6}个数为5\red{5},则该数在1\red{1} ~ 6\red{6}行的列数依次为6,3,1,4,2,5 请你写一个程序,产生按上述方法生成的拉丁方阵。

输入格式

第一行整数N\red{N}(不大于100\red{100});

第二行为1\red{1} ~ N\red{N}N\red{N}个数。

输出格式

按上述方法生成的拉丁方阵。

样例

输入数据

6
6 3 1 4 2 5

输出数据

6 3 1 4 2 5
1 4 5 6 3 2
5 6 2 1 4 3
2 1 3 5 6 4
3 5 4 2 1 6
4 2 6 3 5 1