#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, m;
  char ch;
  char s[1001][1001];
  int dx[] = {0, 0, 1, -1};
  int dy[] = {1, -1, 0, 0};
  cin >> n >> m;
  for (typeof(0) i = (0); i < (n); i++)
    for (typeof(0) j = (0); j < (m); j++) {
      cin >> ch;
      s[i][j] = ch;
    }
  for (typeof(0) i = (0); i < (n); i++) {
    int c = 0;
    for (typeof(0) j = (0); j < (m); j++) {
      if ((j + 1 < m) && (s[i][j] == '.') && (s[i][j + 1] == '.')) {
        s[i][j] = s[i][j + 1] = '0' + c + 3 * (i % 3);
        c = (c + 1) % 3;
      } else if ((i + 1 < n) && s[i][j] == '.' && s[i + 1][j] == '.') {
        s[i][j] = s[i + 1][j] = c + '0' + 3 * (i % 3);
        c = (c + 1) % 3;
      }
    }
  }
  for (typeof(0) i = (0); i < (n); i++) {
    for (typeof(0) j = (0); j < (m); j++)
      if (s[i][j] == '.') {
        bool f = 0;
        for (typeof(0) k = (0); k < (4); k++) {
          int x = i + dx[k];
          int y = j + dy[k];
          if ((x < n) && (x >= 0) && (y >= 0) && (y < m) && s[x][y] != '#') {
            s[i][j] = s[x][y];
            f = 1;
            break;
          }
        }
        if (!f) {
          printf("-1\n");
          return 0;
        }
      }
  }
  for (typeof(0) i = (0); i < (n); i++) {
    for (typeof(0) j = (0); j < (m); j++) cout << s[i][j];
    cout << "\n";
  }
  return 0;
}
