/* Keep It Simple! */ #include <fstream> #include <vector> #include <list> #include <stack> #include <string> #include <cmath> #include <queue> #include <vector> #include <algorithm> using namespace std; #ifndef ONLINE_JUDGE ifstream cin("data.in"); ofstream cout("data.out"); #else #include<iostream> #endif // ONLINE_JUDGE #define ll long long #define mp make_pair #define fi first #define se second #define pb push_back typedef pair<int,int> pii; typedef pair<ll,ll> pll; const int kMaxN = 105; int N; int Nums[kMaxN*kMaxN]; void Solve() { cin >> N; for (int i = 1; i <= N*N; ++i) cin >> Nums[i]; sort(Nums+1,Nums+1+N*N,greater<int>()); for (int i = 1; i <= N; ++i) swap(Nums[i],Nums[(i-1)*N + i]); for (int i = 1; i <= N; ++i) { for (int j = 1; j <= N; ++j) cout << Nums[(i-1)*N + j] << ' '; cout << '\n'; } } int main() { Solve(); return 0; }