#include<iostream>#include<iomanip>#include<cstdio>#include<string>#include<vector>#include<array>#include<math.h>#include<ctype.h>#include<algorithm>
using namespace std;int a[10000], s[10000][10000]={0};intcmp(int a,int b){return a > b;}intmain(){int n, i, j, x, y, min =9999;int k =0, r =0, c =0;
cin >> n;for(i =0; i < n; i++)
cin >> a[i];sort(a, a + n, cmp);for(i =1; i <=sqrt(n*1.0); i++){if(n%i ==0){if(n / i - i < min){
min = n / i - i;
y = i;}}//确定m和n的值;}
x = n / y;
s[0][0]= a[0];while(k < x*y -1){while(c +1< y&&s[r][c +1]==0)//后面的条件是防止把以前写过的地方再写一遍
s[r][++c]= a[++k];while(r +1< x&&s[r +1][c]==0)
s[++r][c]= a[++k];while(c -1>=0&& s[r][c -1]==0)
s[r][--c]= a[++k];while(r -1>=0&& s[r -1][c]==0)
s[--r][c]= a[++k];}for(i =0; i < x; i++){
cout << s[i][0];for(j =1; j < y; j++){
cout <<" "<< s[i][j];}
cout << endl;}return0;}