#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; const int INF = 0x3f3f3f3f; const double EPS = 0.000000001; const double PI = 3.141592653589793; const long long LLINF = 99999999999999999LL; const int MAX_N = 100005; const int MOD = 1000000007; const long long MAX_VAL = 200000000; int N; int v[MAX_N], A[1002][1002]; int main() { /* #ifndef ONLINE_JUDGE freopen("data.in", "r", stdin); #endif */ cin >> N; for(int i = 1; i <= N * N; ++i) cin >> v[i]; sort(v + 1, v + N * N + 1); for(int i = 1, k = N * N; i <= N; ++i, --k) A[i][i] = v[k]; int k = N * N - N; for(int i = 1; i <= N; ++i) for(int j = 1; j <= N; ++j) if(i != j) { A[i][j] = v[k]; --k; } for(int i = 1; i <= N; ++i) { for(int j = 1; j <= N; ++j) cout << A[i][j] << " "; cout << "\n"; } return 0; }