uses crt;
var n,i,t,x,y,j:longint; a:array[1..1000000]of longint;
b:array[0..10000,0..10000]of longint;
begin
clrscr;
write('n=');readln(n);
for i:=1 to n do
begin
for j:=1 to n do begin write('a[',i,',',j,']=');readln(a[(i-1)*n+j]); end;
end;
for i:=1 to n*n do
for j:=1 to i do
if a[i]<a[j] then
begin
t:=a[i];
a[i]:=a[j];
a[j]:=t;
end;
i:=0; x:=1;
repeat
for y:=x to n-x+1 do begin inc(i); b[x,y]:=a[i]; end;
for x:=n-y+2 to y do begin inc(i); b[x,y]:=a[i]; end;
for y:=x-1 downto n-x+1 do begin inc(i); b[x,y]:=a[i]; end;
for x:=n-y downto y+1 do begin inc(i); b[x,y]:=a[i]; end;
until i>=n*n-1; if n mod 2=1 then b[x,y+1]:=a[n*n];
for i:=1 to n do
begin
for j:=1 to n do write(b[i,j]:5);
writeln;
end;
readln;
end.
///////////////////////////////
Test: