#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
	int N;
	vector<int> myvector;

	cin >> N;

	int** matrix;
	matrix = new int*[N];
	for (int i = 0; i < N; ++i)
		matrix[i] = new int[N];

	myvector.resize(N*N);
	for (int i = 0; i < N*N; ++i)
		cin >> myvector[i];

	sort(myvector.rbegin(), myvector.rend());

	for (int i = 0; i < N; i++)
		matrix[i][i] = myvector[i];

	int k = N;
	for (int i = 0; i < N; ++i)
	{
		for (int j = 0; j < N; ++j)
		{
			if (i != j)
			{
				matrix[i][j] = myvector[k];
				++k;
			}
		}
	}

	for (int i = 0; i < N; ++i)
	{
		for (int j = 0; j < N; ++j)
		{
			cout << matrix[i][j] << " ";
		}
		cout << endl;
	}
}