#include <iostream>
#include <bitset>
using namespace std;
void quickSort(int arr[], int left, int right) {
      int i = left, j = right;
      int tmp;
      int pivot = arr[(left + right) / 2];
      while (i <= j) {
            while (arr[i] > pivot)
                  i++;
            while (arr[j] < pivot)
                  j--;
            if (i <= j) {
                  tmp = arr[i];
                  arr[i] = arr[j];
                  arr[j] = tmp;
                  i++;
                  j--;
            }
      };
      if (left < j)
            quickSort(arr, left, j);
      if (i < right)
            quickSort(arr, i, right);
}
int main(){
    int N;
    cin >> N;
    int Nn = N*N;
    int tb[Nn];
    int rtb[Nn];
    for(int i = 0;i < Nn;++i){
        cin >> tb[i];
    }
    quickSort(tb,0,Nn-1);
    int usd = 0;
    for(int i = 0;i < Nn;++i){
        if(i%(N+1) == 0){
           rtb[i] = tb[i/(N+1)];
           ++usd;
        }else{
           rtb[i] = tb[(i+N-usd)];
           //cout << tb[(i+N-usd)] << endl;
        }
    }

    for(int i = 0;i < Nn;++i){
        cout << rtb[i];
        if((i+1)%N == 0){
            cout << endl;
        }else{
            cout << " ";
        }
    }

}