//Aideen's Code for P24 {aideen[at]gmail[dot]com}
#include <iostream>
using namespace std;

const int MAX_N = 100 + 3;

void compswap(int &x, int &y) {
  if (x > y)
    { int t = x; x = y; y = t; }
}

void sort_row(int mat[][MAX_N], int n, int m, int row) {
  for (int i=0; i<m; i++)
    for (int j=i+1; j<m; j++)
      compswap(mat[row][i], mat[row][j]);
}

void sort_col(int mat[][MAX_N], int n, int m, int col) {
  for (int i=0; i<n; i++)
    for (int j=i+1; j<n; j++)
      compswap(mat[i][col], mat[j][col]);
}

void write_matrix(int mat[][MAX_N], int n, int m) {
  for (int i=0; i<n; i++) {
    for (int j=0; j<m; j++)
      cout << ((j==0)?"":" ") << mat[i][j];
    cout << endl;
  }      
}

// global variables
int n, m;
int a[MAX_N][MAX_N], b[MAX_N][MAX_N], c[MAX_N][MAX_N];

int main() {
  cin >> n >> m;
  for (int i=0; i<n; i++)
    for (int j=0; j<m; j++) {
      cin >> a[i][j]; 
      b[i][j] = c[i][j] = a[i][j];
    }

  for (int i=0; i<n; i++)
    sort_row(b, n, m, i); // it’s on b!
  for (int j=0; j<m; j++)
    sort_col(c, n, m, j);

  write_matrix(b, n, m);
  cout << endl;
  write_matrix(c, n, m);
  return 0;
}

