#Q0101. 方格填数

方格填数

题目描述

给定一个整数 nn,你有 n2n^2 个整数 1,2,,n21, 2, \cdots, n^2,你需要把他们填入一个 n×nn \times n 的矩阵中,每个格子恰好放一个整数; 换句话说,矩阵中的所有元素构成一个 1n21 \sim n^2 的排列。

我们称两个格子是相邻的,当且仅当它们在同一行或同一列上相邻。

对于矩阵中的一个格子 (i,j)(i, j),记其元素为 ai,ja_{i, j}。 如果该格子所有相邻格子的元素都严格小于 ai,ja_{i, j},或者都严格大于 ai,ja_{i, j},那么我们称这个格子是一个极值点。

你的目标是构造一个矩阵,使得极值点的数量尽可能多。如果有多个矩阵满足条件,输出任意一个即可。

输入格式

输入包含一个整数 nn (1n10001 \leq n \leq 1000) — 矩阵的大小。

输出格式

输出共 nn 行,每行 nn 个整数 ai,ja_{i, j},代表你构造的矩阵。

样例

3

3 7 5
8 4 6
2 9 1