#include <iostream>
#include <algorithm>
#include <stdlib.h>
#include <fstream>
#include <stdio.h>
using namespace std;

int n, a[200][200], v[200 * 200];

int main()
{
    #ifndef ONLINE_JUDGE
    freopen("date.in", "r", stdin);
    freopen("date.out", "w", stdout);
    #endif
    int n;
    cin>>n;
    for(int i=1;i<=n*n;i++)
        cin>>v[i];
    sort(v+1,v+n*n+1);
    for(int i=1;i<=(n*n)/2;i++)
        swap(v[i],v[n*n-i+1]);
    for(int i = 1 ; i <= n ; ++ i)
        a[i][i] = v[i];
    /// vrem sa punem in matrice restul elementelor
    /// n + 1 ... n * n
    int k = n + 1; /// primele n elemente le-am folosit
    /// avem nevoie de elementele de la k la n * n
    for(int i = 1 ; i <= n ; ++ i)
        for(int j = 1 ; j<= n ; ++ j) {
            if(i != j) {
                a[i][j] = v[k];
                ++ k; /// am folosit elementeul v[k], si trecem la urmatorul
            }
        }
    for(int i = 1 ; i <= n ; ++ i, cout << '\n')
        for(int j = 1 ; j <= n ; ++ j)
            cout << a[i][j] << ' ';
    return 0;
}