#include<iostream>
using namespace std;
int n,a[200][200],v[20000],k=0,i,j;
int pozitie(int s,int d,int v[])
{
    int pivot,aux;
    pivot=v[s];
    while(s<d)
    {
        if(v[s]>v[d])
        {
            aux=v[d];
            v[d]=v[s];
            v[s]=aux;
        }
        if(pivot==v[s])
            d--;
        else
            s++;
    }
    return s;
}
void divide(int s,int d,int v[])
{
    if(s<d)
    {
        int k;
        k=pozitie(s,d,v);
        divide(s,k-1,v);
        divide(k+1,d,v);
    }
}
int main()
{
    cin>>n;
    for(i=1; i<=n*n; i++)
        cin>>v[i];
    divide(1,n*n,v);
    k=n*n;
    for(i=1; i<=n; i++)
        a[i][i]=v[k--];
        k=0;
    for(i=1; i<=n; i++)
        for(j=1; j<=n; j++)
            if(i!=j)
                a[i][j]=v[++k];
            for(i=1;i<=n;i++)
            {
                for(j=1;j<=n;j++)
                    cout<<a[i][j]<<" ";
                cout<<endl;
            }
            return 0;
}