#include<iostream>
#include<bits/stdc++.h>
using namespace std;
bool cmp(int a,int b){
if(a!=b) return a>b;
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("in.txt","r",stdin);
#endif
int n;
cin>>n;
if(n==0){
cout<<"0"<<endl;
return 0;
}
vector<int> ppp;
ppp.resize(n);
for(int i=0;i<n;i++){
cin>>ppp[i];
}
sort(ppp.begin(),ppp.end(),cmp);
int nn,mm;
for(int i=sqrt(n);i>0;i--){
if(n%i==0){
nn=i;
mm=n/nn;
break;
}
}
int lev=mm/2+mm%2;
int t=0;
int a[mm][nn];
fill(a[0],a[0]+mm*nn,0);
for(int k=0;k<lev;k++){
for(int i=k;i<nn-k&&t<=n-1;i++) a[k][i]=ppp[t++];
for(int i=k+1;i<mm-k-1&&t<=n-1;i++) a[i][nn-1-k]=ppp[t++];
for(int i=nn-k-1;i>=k&&t<=n-1;i--) a[mm-k-1][i]=ppp[t++];
for(int i=mm-k-2;i>=k+1&&t<=n-1;i--) a[i][k]=ppp[t++];
}
for(int i=0;i<mm;i++){
for(int j=0;j<nn;j++){
if(j==0) cout<<a[i][j];
else cout<<' '<<a[i][j];
}
cout<<endl;
}
return 0;
}