#include <bits/stdc++.h>
int n, m;
char s[1010][1010];
char a[1010][1010];
void out() {
  for (int i = 0; i < n; i++) {
    printf("%s\n", a[i]);
  }
}
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 0; i < n; i++) {
    scanf("%s", s[i]);
    a[i][m] = '\0';
  }
  char tr[16] = {};
  tr[1] = '1', tr[2] = '2', tr[4] = '3', tr[8] = '4';
  for (int b = 0; b < 1 << 4; b++) {
    int c = 0;
    for (int k = 0; k < 4; k++) {
      c += b >> k & 1;
    }
    if (c != 2) continue;
    int f = 1;
    for (int i = 0; i < n; i++) {
      int t[2] = {}, y = i & 1 ? b : b ^ 15;
      for (int j = 0; j < m; j++) {
        if (s[i][j] == '0') continue;
        int z = 1 << (s[i][j] - '1');
        if ((y & z) == 0) {
          f = 0;
        } else if (t[j & 1 ^ 1] == z || t[j & 1] == (y ^ z)) {
          f = 0;
        } else {
          t[j & 1] = z;
        }
      }
      if (!f) break;
      if (!t[1]) {
        if (!t[0]) {
          if (y & 1) {
            t[0] = 1;
          } else if (y & 2) {
            t[0] = 2;
          } else {
            t[0] = 4;
          }
        }
        t[1] = y ^ t[0];
      } else if (!t[0]) {
        t[0] = y ^ t[1];
      }
      for (int j = 0; j < m; j++) {
        a[i][j] = tr[t[j & 1]];
      }
    }
    if (f) {
      out();
      return 0;
    }
    f = 1;
    for (int j = 0; j < m; j++) {
      int t[2] = {}, y = j & 1 ? b : b ^ 15;
      for (int i = 0; i < n; i++) {
        if (s[i][j] == '0') continue;
        int z = 1 << (s[i][j] - '1');
        if ((y & z) == 0) {
          f = 0;
        } else if (t[i & 1 ^ 1] == z || t[i & 1] == (y ^ z)) {
          f = 0;
        } else {
          t[i & 1] = z;
        }
      }
      if (!f) break;
      if (!t[1]) {
        if (!t[0]) {
          if (y & 1) {
            t[0] = 1;
          } else if (y & 2) {
            t[0] = 2;
          } else {
            t[0] = 4;
          }
        }
        t[1] = y ^ t[0];
      } else if (!t[0]) {
        t[0] = y ^ t[1];
      }
      for (int i = 0; i < n; i++) {
        a[i][j] = tr[t[i & 1]];
      }
    }
    if (f) {
      out();
      return 0;
    }
  }
  printf("0\n");
  return 0;
}
