#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
#define fastio ios_base::sync_with_stdio(0), cin.tie(0)
#define SET(x, y) memset((x), y, sizeof(x))
const LL INF64 = 1e18;
LL arr[305 * 305];
LL grid[305][305];
int main() {
SET(grid, -1);
fastio;
string s;
cin >> s;
cin >> s;
LL n;
cin >> n;
for (int i = 0; i < n * (n + 1) / 2; i++)
cin >> arr[i];
if (n == 1) {
cout << arr[0] << endl;
return 0;
}
LL lo = 0;
LL hi = n * (n + 1) / 2 - 1;
sort(arr, arr + (n * (n + 1) / 2));
for (int k = n - 1; k > 1; k--) {
grid[k][k] = arr[hi--];
grid[k][1] = arr[lo++];
grid[k][0] = arr[lo++];
}
LL used1, used2;
LL diff = INF64;
for (int i = lo; i <= hi; i++) {
for (int j = lo; j < i; j++) {
if (arr[i] - arr[j] < diff) {
diff = arr[i] - arr[j];
used1 = i;
used2 = j;
}
}
}
grid[1][0] = arr[used1];
grid[1][1] = arr[used2];
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
while (lo == used1 || lo == used2)
lo++;
if (grid[i][j] == -1)
grid[i][j] = arr[lo++];
if (j > 0)
cout << " ";
cout << grid[i][j];
}
cout << endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIExMOwojZGVmaW5lIGZhc3RpbyBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApLCBjaW4udGllKDApCiNkZWZpbmUgU0VUKHgsIHkpIG1lbXNldCgoeCksIHksIHNpemVvZih4KSkKY29uc3QgTEwgSU5GNjQgPSAxZTE4OwpMTCBhcnJbMzA1ICogMzA1XTsKTEwgZ3JpZFszMDVdWzMwNV07CgppbnQgbWFpbigpIHsKCVNFVChncmlkLCAtMSk7CglmYXN0aW87CglzdHJpbmcgczsKCWNpbiA+PiBzOwoJY2luID4+IHM7CglMTCBuOwoJY2luID4+IG47Cglmb3IgKGludCBpID0gMDsgaSA8IG4gKiAobiArIDEpIC8gMjsgaSsrKQoJCWNpbiA+PiBhcnJbaV07CglpZiAobiA9PSAxKSB7CgkJY291dCA8PCBhcnJbMF0gPDwgZW5kbDsKCQlyZXR1cm4gMDsKCX0KCUxMIGxvID0gMDsKCUxMIGhpID0gbiAqIChuICsgMSkgLyAyIC0gMTsKCXNvcnQoYXJyLCBhcnIgKyAobiAqIChuICsgMSkgLyAyKSk7Cglmb3IgKGludCBrID0gbiAtIDE7IGsgPiAxOyBrLS0pIHsKCQlncmlkW2tdW2tdID0gYXJyW2hpLS1dOwoJCWdyaWRba11bMV0gPSBhcnJbbG8rK107CgkJZ3JpZFtrXVswXSA9IGFycltsbysrXTsKIAl9CiAJTEwgdXNlZDEsIHVzZWQyOwogCUxMIGRpZmYgPSBJTkY2NDsKIAlmb3IgKGludCBpID0gbG87IGkgPD0gaGk7IGkrKykgewogCQlmb3IgKGludCBqID0gbG87IGogPCBpOyBqKyspIHsKIAkJCWlmIChhcnJbaV0gLSBhcnJbal0gPCBkaWZmKSB7CiAJCQkJZGlmZiA9IGFycltpXSAtIGFycltqXTsKIAkJCQl1c2VkMSA9IGk7CiAJCQkJdXNlZDIgPSBqOwogCQkJfQogCQl9CiAJfQogCWdyaWRbMV1bMF0gPSBhcnJbdXNlZDFdOwogCWdyaWRbMV1bMV0gPSBhcnJbdXNlZDJdOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKCQlmb3IgKGludCBqID0gMDsgaiA8PSBpOyBqKyspIHsKCQkJd2hpbGUgKGxvID09IHVzZWQxIHx8IGxvID09IHVzZWQyKQoJCQkJbG8rKzsKCQkJaWYgKGdyaWRbaV1bal0gPT0gLTEpCgkJCQlncmlkW2ldW2pdID0gYXJyW2xvKytdOwoJCQlpZiAoaiA+IDApCgkJCQljb3V0IDw8ICIgIjsKCQkJY291dCA8PCBncmlkW2ldW2pdOwoJCX0KCQljb3V0IDw8IGVuZGw7Cgl9CglyZXR1cm4gMDsKfQ==