#include<cstdio> #include<vector> #include<cstring> #include<cmath> #include<cstdlib> #include<ctime> #include<map> #include<set> #include<queue> #include<algorithm> using namespace std; int N, nr, pos[109][109], b[109 * 109]; int main() { //freopen ("input", "r", stdin); //freopen ("output", "w", stdout); scanf ("%d", &N); for (int i=1; i<=N * N; i++) scanf ("%d", &b[i]); sort (b + 1, b + N * N + 1); reverse (b + 1, b + N * N + 1); for (int i=1; i<=N; i++) pos[i][i] = b[++nr]; for (int i=1; i<=N; i++) for (int j=1; j<=N; j++) if (i != j) pos[i][j] = b[++nr]; for (int i=1; i<=N; i++, printf ("\n")) for (int j=1; j<=N; j++) printf ("%d ", pos[i][j]); return 0; }