#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; }