#include <string>
#include <iostream> 
#include <algorithm>
#include <cstdlib>
#include <fstream>
#include <vector>
#include <iomanip>
#include <map>
#include <sstream>
#include <iterator>
#include <set>
#include <queue>
#include <cstring>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;

typedef vector<int> vi;
typedef pair<int, int> ii;


int main()
{
	//freopen("C:\\Users\\Despondency\\Desktop\\in.txt","r",stdin);
	ios_base::sync_with_stdio(0); //care for getchar()
	cin.tie(0);
	int n;
	cin >> n;
	vector<int> bla;
	for (int i = 0; i < n * n; i++)
	{
		int p; cin >> p; bla.push_back(p);
	}
	sort(bla.begin(), bla.end());

	int **a = new int*[n];
	for (int i = 0; i < n; i++)
	{
		a[i] = new int[n];
	}
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			a[i][j] = 0;
		}
	}

	int i = 0;
	int j = 0;
	int inc = 1;
	while (i != n)
	{
		a[i][j] = bla[bla.size() - inc];
		i++;
		j++; inc++;
	}
	int idx = n*n;
	int from = 0;
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			if (a[i][j] == 0)
			{
				a[i][j] = bla[from];
				from++;
			}
		}
		if (from == idx)
		{
			goto end;
		}
	}
end:;
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			cout << a[i][j] << " ";
		}
		cout << endl;
	}
}