#include <bits/stdc++.h>
using namespace std;
void print(vector<vector<int> > grid, bool rev) {
  if (rev)
    for (int j = 0; j < grid[0].size(); ++j) {
      string s;
      for (int i = 0; i < grid.size(); ++i) s.push_back(grid[i][j] + '0');
      cout << s << '\n';
    }
  else
    for (int i = 0; i < grid.size(); ++i) {
      string s;
      for (int j = 0; j < grid[i].size(); ++j) s.push_back(grid[i][j] + '0');
      cout << s << '\n';
    }
}
void solve(vector<vector<int> > grid, int a, int b, bool rev) {
  int c, d;
  for (int i = 1; i <= 4; ++i)
    if (i != a && i != b) c = i;
  for (int i = 1; i <= 4; ++i)
    if (i != a && i != b && i != c) d = i;
  int n = grid.size(), m = grid[0].size();
  for (int i = 0; i < n; ++i) {
    bool amod[2] = {}, bmod[2] = {};
    for (int j = 0; j < m; ++j)
      if (grid[i][j] == a)
        amod[j % 2] = true;
      else if (grid[i][j] == b)
        bmod[j % 2] = true;
      else if (grid[i][j] != 0)
        return;
    if (amod[0] + amod[1] > 1) return;
    if (bmod[0] + bmod[1] > 1) return;
    if (amod[0] + amod[1] == 0 && bmod[0] == 0) amod[0] = 1;
    if (amod[0] + amod[1] == 0 && bmod[1] == 0) amod[1] = 1;
    if (bmod[0] + bmod[1] == 0 && amod[0] == 0) bmod[0] = 1;
    if (bmod[0] + bmod[1] == 0 && amod[1] == 0) bmod[1] = 1;
    for (int j = 0; j < m; ++j)
      if (amod[j % 2])
        grid[i][j] = a;
      else
        grid[i][j] = b;
    swap(a, c);
    swap(b, d);
  }
  print(grid, rev);
  exit(0);
}
int main() {
  ios_base::sync_with_stdio(false);
  int n, m;
  cin >> n >> m;
  vector<vector<int> > grid(n, vector<int>(m)), rgrid(m, vector<int>(n));
  for (int i = 0; i < n; ++i) {
    string s;
    cin >> s;
    for (int j = 0; j < m; ++j) {
      grid[i][j] = s[j] - '0';
      rgrid[j][i] = s[j] - '0';
    }
  }
  solve(grid, 1, 2, 0);
  solve(grid, 1, 3, 0);
  solve(grid, 1, 4, 0);
  solve(grid, 2, 3, 0);
  solve(grid, 2, 4, 0);
  solve(grid, 3, 4, 0);
  solve(rgrid, 1, 2, 1);
  solve(rgrid, 1, 3, 1);
  solve(rgrid, 1, 4, 1);
  solve(rgrid, 2, 3, 1);
  solve(rgrid, 2, 4, 1);
  solve(rgrid, 3, 4, 1);
  cout << "0\n";
}
