#include #include using namespace std; const int NMAX = 100; int v[NMAX * NMAX + 1]; int a[NMAX + 1][NMAX + 1]; int main () { //freopen ("date.in", "r", stdin); //freopen ("date.out", "w", stdout); int n; scanf ("%d", &n); for (int i = 1; i <= n * n; ++i) scanf ("%d", &v[i]); sort (v + 1, v + 1 + n * n); int nr = n * n - n; for (int i = 1; i <= n; ++i) { for (int j = 1; j < i; ++j) a[i][j] = v[nr--]; a[i][i] = v[n * n - i + 1]; for (int j = i + 1; j <= n; ++j) a[i][j] = v[nr--]; } for (int i = 1; i <= n; ++i) { for (int j = 1; j <= n; ++j) printf ("%d ", a[i][j]); printf ("\n"); } return 0; }