#include <bits/stdc++.h>
#pragma warning(disable : 4996)
struct XY {
  int x, y;
};
int used[128];
char a[1002][1002], deg[1002][1002];
const int dy[] = {0, 1, 0, -1}, dx[] = {1, 0, -1, 0};
XY q[1002 * 1002];
int main() {
  int i, j, k, l, front = 0, rear = 0, nx, ny, n, m, T = 0;
  scanf("%d%d", &n, &m);
  for (i = 1; i <= n; ++i) scanf("%s", a[i] + 1);
  for (i = 1; i <= n; ++i)
    for (j = 1; j <= m; ++j)
      if (a[i][j] == '.') {
        for (k = 0; k < 4; ++k)
          if (a[i + dy[k]][j + dx[k]] == '.') ++deg[i][j];
        if (deg[i][j] == 1)
          q[++rear].y = i, q[rear].x = j;
        else if (!deg[i][j])
          printf("-1"), exit(0);
      }
  ny = nx = 1;
  while (1) {
    while (front != rear) {
      ++front;
      if (a[q[front].y][q[front].x] != '.') continue;
      for (k = 0; k < 4; ++k)
        if (a[q[front].y + dy[k]][q[front].x + dx[k]] == '.') break;
      i = q[front].y + dy[k];
      j = q[front].x + dx[k];
      deg[i][j] = -1;
      ++T;
      for (k = 0; k < 4; ++k)
        if (deg[i + dy[k]][j + dx[k]] == 1) {
          for (l = 0; l < 4; ++l) {
            used[a[i + dy[k] + dy[l]][j + dx[k] + dx[l]]] = T;
            if (--deg[i + dy[k] + dy[l]][j + dx[k] + dx[l]] == 1)
              q[++rear].y = i + dy[k] + dy[l], q[rear].x = j + dx[k] + dx[l];
          }
        } else
          used[a[i + dy[k]][j + dx[k]]] = T;
      for (l = 1; l <= 9; ++l)
        if (used['0' + l] != T) break;
      l += '0';
      a[i][j] = l;
      for (k = 0; k < 4; ++k)
        if (--deg[i + dy[k]][j + dx[k]] == 0)
          a[i + dy[k]][j + dx[k]] = l, deg[i + dy[k]][j + dx[k]] = -1;
        else if (deg[i + dy[k]][j + dx[k]] == 1)
          q[++rear].y = i + dy[k], q[rear].x = j + dx[k];
    }
    while (ny <= n) {
      if (a[ny][nx] == '.') break;
      if (nx < m)
        ++nx;
      else
        ++ny, nx = 1;
    }
    if (ny > n) break;
    for (i = 0; i < 4; ++i)
      if (a[ny + dy[i]][nx + dx[i]] == '.') break;
    deg[ny][nx] = deg[ny + dy[i]][nx + dx[i]] = 0;
    ++T;
    for (k = 0; k < 4; ++k)
      if (k == i) {
        for (l = 0; l < 4; ++l) {
          used[a[ny + dy[k] + dy[l]][nx + dx[k] + dx[l]]] = T;
          if (--deg[ny + dy[k] + dy[l]][nx + dx[k] + dx[l]] == 1)
            q[++rear].y = ny + dy[k] + dy[l], q[rear].x = nx + dx[k] + dx[l];
        }
      } else
        used[a[ny + dy[k]][nx + dx[k]]] = T;
    for (l = 1; l <= 9; ++l)
      if (used['0' + l] != T) break;
    a[ny][nx] = a[ny + dy[i]][nx + dx[i]] = l + '0';
    for (k = 0; k < 4; ++k)
      if (--deg[ny + dy[k]][nx + dx[k]] == 1)
        q[++rear].y = ny + dy[k], q[rear].x = nx + dx[k];
  }
  for (i = 1; i <= n; ++i) printf("%s\n", a[i] + 1);
  return 0;
}
