#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstdio>
using namespace std;
bool cmp(int a,int b){
return a>b;
}
int main()
{
int n;
cin>>n;
int a[n];
for(int i=0;i<n;i++){
cin>>a[i];
}
sort(a,a+n,cmp);
int m,k,mk=9999;
for(int i=1;i<=(int)sqrt((double)n);i++){
if(n%i==0){
if((n/i-i)<mk){
mk=n/i-i;
m=n/i;
k=i;
}
}
}
int b[m][k];
int level = m/2 + m%2;
int t=0;
for (int i=0; i<level; i++) {
for (int j=i;j<=k-1-i&&t<=n-1;j++) {
b[i][j] = a[t++];
}
for (int j=i+1;j<=m-2-i&&t<=n-1;j++) {
b[j][k-1-i]=a[t++];
}
for (int j=k-i-1;j>=i&&t<=n-1;j--) {
b[m-1-i][j] = a[t++];
}
for (int j=m-2-i;j>=i+1&&t<=n-1;j--) {
b[j][i] = a[t++];
}
}
for (int i=0; i<m; i++) {
for (int j=0; j<k; j++) {
printf("%d", b[i][j]);
if (j != k-1) printf(" ");
}
if(i!=m-1) printf("\n");
}
return 0;
}