#include <bits/stdc++.h>
using namespace std;
string sss[1001][1001];
int main() {
  int n, m;
  char s[3];
  string ss;
  scanf("%d%d", &n, &m);
  priority_queue<string> q;
  for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++) {
      scanf(" %s", s);
      ss = s;
      q.push(ss);
    }
  for (int i = 0; i < n; i++) {
    if (i & 1) {
      for (int j = m - 1; j >= 0; j--) {
        sss[i][j] = q.top();
        q.pop();
      }
    } else {
      for (int j = 0; j < m; j++) {
        sss[i][j] = q.top();
        q.pop();
      }
    }
  }
  for (int j = 0; j < m; j++) {
    int zo = 0, oz = 0;
    for (int i = 0; i < n; i++) {
      if (sss[i][j] == "01") zo++;
      if (sss[i][j] == "10") oz++;
    }
    if (abs(oz - zo) > 1) {
      if (oz > zo) {
        int d = (oz + zo) / 2 - zo;
        for (int i = 0; d && i < n; i++) {
          if (sss[i][j] == "10") {
            d--;
            swap(sss[i][j][0], sss[i][j][1]);
          }
        }
      } else {
        int d = (oz + zo) / 2 - oz;
        for (int i = 0; d && i < n; i++) {
          if (sss[i][j] == "01") {
            d--;
            swap(sss[i][j][0], sss[i][j][1]);
          }
        }
      }
    }
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      if (j) printf(" ");
      printf("%s", sss[i][j].c_str());
    }
    printf("\n");
  }
}
