#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int m, n;
cin >> n >> m;
int a[n][m];
int b[n * m];
for(int i = 0; i < m * n; i++) cin >> b[i];
sort(b, b + m*n);
int k = m, l = n, r = 0, p = 0, q = 0, i = 0, j = 0;
while(r <= m*n)
{
while(j < k)
{
a[i][j] = b[r];
r = r + 1;
if(j == k - 1) break;
j = j + 1;
}
r = r - 1;
while(i < l)
{
a[i][j] = b[r];
r = r + 1;
if(i == l - 1) break;
i = i + 1;
}
r = r - 1;
while(j >= q)
{
a[i][j] = b[r];
r = r + 1;
if(j == q) break;
j = j - 1;
}
r = r - 1;
while(i >= p)
{
a[i][j] = b[r];
r = r + 1;
if(i == p + 1) break;
i = i - 1;
}
r = r - 1;
k = k - 1;
l = l - 1;
p = p + 1;
q = q + 1;
if(r == m*n - 1) break;
}
for(int i = 0; i < n; i++)
{
for(int j = 0; j < m; j++) cout << a[i][j] << " ";
cout << "\n";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CglpbnQgbSwgbjsKCWNpbiA+PiBuID4+IG07CglpbnQgYVtuXVttXTsKCWludCBiW24gKiBtXTsKCWZvcihpbnQgaSA9IDA7IGkgPCBtICogbjsgaSsrKSBjaW4gPj4gYltpXTsKCXNvcnQoYiwgYiArIG0qbik7CglpbnQgayA9IG0sIGwgPSBuLCByID0gMCwgcCA9IDAsIHEgPSAwLCBpID0gMCwgaiA9IDA7Cgl3aGlsZShyIDw9IG0qbikKCXsKCQl3aGlsZShqIDwgaykKCQl7CgkJCWFbaV1bal0gPSBiW3JdOwoJCQlyID0gciArIDE7CgkJCWlmKGogPT0gayAtIDEpIGJyZWFrOwoJCQlqID0gaiArIDE7CgkJfQoJCXIgPSByIC0gMTsKCQl3aGlsZShpIDwgbCkKCQl7CgkJCWFbaV1bal0gPSBiW3JdOwoJCQlyID0gciArIDE7CgkJCWlmKGkgPT0gbCAtIDEpIGJyZWFrOwoJCQlpID0gaSArIDE7CgkJfQoJCXIgPSByIC0gMTsKCQl3aGlsZShqID49IHEpCgkJewoJCQlhW2ldW2pdID0gYltyXTsKCQkJciA9IHIgKyAxOwoJCQlpZihqID09IHEpIGJyZWFrOwoJCQlqID0gaiAtIDE7CgkJfQoJCXIgPSByIC0gMTsKCQl3aGlsZShpID49IHApCgkJewoJCQlhW2ldW2pdID0gYltyXTsKCQkJciA9IHIgKyAxOwoJCQlpZihpID09IHAgKyAxKSBicmVhazsKCQkJaSA9IGkgLSAxOwoJCX0KCQlyID0gciAtIDE7CgkJayA9IGsgLSAxOwoJCWwgPSBsIC0gMTsKCQlwID0gcCArIDE7CgkJcSA9IHEgKyAxOwoJCWlmKHIgPT0gbSpuIC0gMSkgYnJlYWs7Cgl9Cglmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQoJewoJCWZvcihpbnQgaiA9IDA7IGogPCBtOyBqKyspIGNvdXQgPDwgYVtpXVtqXSA8PCAiICI7CgkJY291dCA8PCAiXG4iOwoJfQoJcmV0dXJuIDA7Cn0=