program problemDomimatrix;

var	a: array[ 1..10000 ] of int64;

procedure qsort( l, r: longInt );
var	i, j: longInt;
	t, med: int64;
begin
	if ( l < r ) then
	begin
		i := l;
		j := r;
		med := a[ l + random(r - l + 1) ];
		while ( i <= j ) do
		begin
			while ( a[i] > med ) do
				inc( i );
			while ( a[j] < med ) do
				dec( j );
			
			if ( i <= j ) then
			begin
				t := a[i];
				a[i] := a[j];
				a[j] := t;
				
				inc( i );
				dec( j );
			end;
		end;
		
		qsort( l, j );
		qsort( i, r );
	end;
end;

var	n, i, j, k: longInt;

begin
	readln( n );
	for i := 1 to n * n do
		read( a[i] );
	
	qsort( 1, n * n );
	
	k := n + 1;
	for i := 1 to n do
	begin
		for j := 1 to n do
		begin
			if ( i = j ) then
				write( a[i] )
			else
			begin
				write( a[k] );
				inc( k );
			end;
			
			if ( j < n ) then
				write( ' ' );
		end;
		
		writeln();
	end;
end.