#include <cstdio>
#include <algorithm>

using namespace std;

const int NMAX = 100;

int v[NMAX * NMAX + 1];
int a[NMAX + 1][NMAX + 1];

int main () {
    //freopen ("date.in", "r", stdin);
    //freopen ("date.out", "w", stdout);

    int n;

    scanf ("%d", &n);
    for (int i = 1; i <= n * n; ++i)
        scanf ("%d", &v[i]);

    sort (v + 1, v + 1 + n * n);

    int nr = n * n - n;
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j < i; ++j)
            a[i][j] = v[nr--];
        a[i][i] = v[n * n - i + 1];
        for (int j = i + 1; j <= n; ++j)
            a[i][j] = v[nr--];
    }

    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= n; ++j)
            printf ("%d ", a[i][j]);
        printf ("\n");
    }
    return 0;
}