#include<bits/stdc++.h>
using namespace std;
#define rep(x,y,z) for(int x=(y);(x)<(z);x++)
const int maxn=1e6+10;
int n,a[maxn],b[maxn];
int l,r;
void solve(int x1,int y1,int x2,int y2){
if(x1>x2||y1>y2) return ;
rep(i,y1,y2+1) b[x1*r+i]=a[n--];
rep(i,x1+1,x2+1) b[i*r+y2]=a[n--];
for(int i=y2-1;i>=y1;i--) b[x2*r+i]=a[n--];
if(n) for(int i=x2-1;i>=x1+1;i--) b[i*r+y1]=a[n--];
solve(x1+1,y1+1,x2-1,y2-1);
}
int main(){
ios::sync_with_stdio(false);
cin>>n;
rep(i,1,n+1) cin>>a[i];
sort(a+1,a+1+n);
for(int i=1;i*i<=n;i++)
if(n%i==0) r=i;
l=n/r;
///cout<<l<<" "<<r<<endl;
solve(0,0,l-1,r-1);
rep(i,0,l) rep(j,0,r){
cout<<b[i*r+j];
if(j==r-1) cout<<"\n";
else cout<<" ";
}
return 0;
}