#include <stdio.h>
#include <stdlib.h>

int main(void) 
{
	int n, i, j;
	scanf("%d", &n);
	int size = n * n + 1;
	int *v = malloc(size * sizeof(int));
	v[0] = 0;
	for (i = 1; i < size; i++) {
		scanf("%d", &v[i]);
	}
	for (j = 2; j < size; j++) {
		int max = v[j];
		i = j - 1;
		while (i > 0 && v[i] < max) {
			v[i + 1] = v[i];
			i = i - 1;
		}
		v[i + 1] = max;
	}
	int **mat = malloc(n * sizeof(int*));
	for (i = 0; i < n; i++) {
		mat[i] = calloc(n, sizeof(int));
	}
	int ctr = 0;
	for (i = 0; i < n; i++) {	
		for (j = 0; j < n; j++) {
			if (i != j) {
				mat[i][j] = v[n + 1 + ctr];
				ctr++;
			} else {
				mat[i][j] = v[i + 1];
			}
		}
	}
	for (i = 0; i < n; i++) {
		for (j = 0; j < n; j++) {
			printf("%d ", mat[i][j]);
			if ((j + 1) % n == 0) {
				printf("\n");
			}
		}
	} 
	return 0;
}