#include <bits/stdc++.h>
using namespace std;
const int maxn = 2 * 100000 + 10, MOD = 1000 * 1000 * 1000 + 7,
          INF = 1000 * 1000 * 1000;
const long long LINF = (1ll) << 60;
const double EPS = 1e-9, PI = 2. * acos(0.0);
string board[1000 + 10];
string outBoard[1000 + 10];
int n, m;
int dirx[] = {-1, 0, 1, 0};
int diry[] = {0, 1, 0, -1};
bool inRange(int x, int y) { return x < n && x >= 0 && y < m && y >= 0; }
int setCol(int i, int j, bool H) {
  int col[] = {0, 0, 0, 0};
  if (H) {
    if (inRange(i, j - 1) && outBoard[i][j - 1] != '.') {
      col[outBoard[i][j - 1] - 'a']++;
    }
    if (inRange(i, j + 3) && outBoard[i][j + 3] != '.') {
      col[outBoard[i][j + 3] - 'a']++;
    }
    if (inRange(i - 1, j)) {
      for (int k = 0; k < 3; k++) {
        if (inRange(i - 1, j + k) && outBoard[i - 1][j + k] != '.') {
          col[outBoard[i - 1][j + k] - 'a']++;
        }
      }
    }
  } else {
    for (int k = 0; k < 4; k++) {
      int x = i + dirx[k];
      int y = j + diry[k];
      if (inRange(x, y) && outBoard[x][y] != '.') {
        col[outBoard[x][y] - 'a']++;
      }
    }
  }
  int curCol = -1;
  for (int k = 0; k < 4; k++) {
    if (col[k] == 0) {
      curCol = k;
      break;
    }
  }
  if (curCol == -1) {
    return -1;
  }
  for (int k = 0; k < 3; k++) {
    if (!inRange(i, j) || outBoard[i][j] != '.') {
      return -1;
    }
    if (k == 1) {
      if (board[i][j] != 'b') {
        return -1;
      }
    } else {
      if (board[i][j] != 'w') {
        return -1;
      }
    }
    outBoard[i][j] = curCol + 'a';
    i = i + (H ? 0 : 1);
    j = j + (H ? 1 : 0);
  }
  return curCol;
}
bool soGreedy() {
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      if (board[i][j] == '.' || outBoard[i][j] != '.') {
        continue;
      }
      if (board[i][j] == 'w') {
        if (!inRange(i, j + 1) || outBoard[i][j + 1] != '.' ||
            board[i][j + 1] != 'b') {
          int ret = setCol(i, j, false);
          if (ret == -1) {
            return false;
          }
        } else {
          int ret = setCol(i, j, true);
          if (ret == -1) {
            return false;
          }
        }
      }
    }
  }
  return true;
}
int main() {
  cin >> n >> m;
  for (int i = 0; i < n; i++) {
    cin >> board[i];
    outBoard[i] = "";
    for (int j = 0; j < m; j++) {
      outBoard[i] += ".";
    }
  }
  bool ret = soGreedy();
  if (ret) {
    cout << "YES"
         << "\n";
    for (int i = 0; i < n; i++) {
      cout << outBoard[i] << "\n";
    }
  } else {
    cout << "NO"
         << "\n";
  }
  return 0;
}
