#include <bits/stdc++.h>
using namespace std;
template <typename T>
void out(T x) {
  cout << x << endl;
  exit(0);
}
const int maxn = 1e3 + 11;
int n;
int m;
map<int, int> mp;
map<int, string> rev;
string grid[maxn][maxn];
int cols[maxn * 2];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> m;
  rev[0] = "00";
  rev[1] = "01";
  rev[2] = "10";
  rev[3] = "11";
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      string s;
      cin >> s;
      if (s == "11")
        mp[3]++;
      else if (s == "10" || s == "01")
        mp[1]++;
      else
        mp[0]++;
    }
  }
  for (int i = 0; i < n; i += 2) {
    for (int j = 0; j < m; j++) {
      if (mp[3] > 0) {
        --mp[3];
        cols[j * 2]++;
        cols[j * 2 + 1]++;
        grid[i][j] = rev[3];
        if (i + 1 >= n) continue;
        if (mp[0] > 0) {
          grid[i + 1][j] = rev[0];
          --mp[0];
        } else if (mp[1] > 0) {
          if (cols[2 * j] > cols[2 * j + 1]) {
            grid[i + 1][j] = rev[1];
            cols[2 * j + 1]++;
          } else {
            grid[i + 1][j] = rev[2];
            cols[2 * j]++;
          }
          --mp[1];
        } else {
          grid[i + 1][j] = rev[3];
          --mp[3];
          cols[j * 2]++;
          cols[j * 2 + 1]++;
        }
      } else if (mp[1] > 0) {
        --mp[1];
        if (i == 0) {
          grid[i][j] = rev[1];
        } else {
          if (cols[2 * j] > cols[2 * j + 1]) {
            grid[i][j] = rev[1];
            cols[2 * j + 1]++;
          } else {
            grid[i][j] = rev[2];
            cols[2 * j]++;
          }
        }
        if (i + 1 >= n) continue;
        if (mp[0] > 0) {
          grid[i + 1][j] = rev[0];
          --mp[0];
        } else {
          if (cols[2 * j] > cols[2 * j + 1]) {
            grid[i + 1][j] = rev[1];
            cols[2 * j + 1]++;
          } else {
            grid[i + 1][j] = rev[2];
            cols[2 * j]++;
          }
          --mp[1];
        }
      } else {
        --mp[0];
        grid[i][j] = rev[0];
        if (i + 1 >= n) continue;
        grid[i + 1][j] = rev[0];
        --mp[0];
      }
    }
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      cout << grid[i][j] << " ";
    }
    cout << "\n";
  }
  return 0;
}
