末日DISCO
题号:NC284002
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

明白 你那份跳动的爱
别再 装作着无所谓的姿态
现在 就跟着节奏摇摆
将所有的伪装抛开
——阿良良木健《末日DISCO》

给定一个正整数 n,你需要构造 n 个集合 S_1,S_2,\dots, S_n,每个集合均含有 n 个元素,且满足:
1. 在每个集合中,每个数最多出现 1 次。
2. 任意两个集合 S_i,S_j 满足 i \neq j,都有 |S_i \cap S_j|=1,即 S_iS_j 的交集的大小均为 1
3. 对于所有在 S_1,S_2,\dots S_n 中出现过的元素 xx 在所有集合的出现次数之和必须小于等于 2
4. 集合中的元素 x 必须满足 1 \le x \le10^6

输入描述:

一行一个正整数 n( 1 \le n \le 500)

输出描述:

n 行,每行 n 个正整数,表示答案。
示例1

输入

复制
3

输出

复制
1 2 3
3 4 5
1 5 6

备注: