#include <bits/stdc++.h>
using namespace std;
void rm(bool ok[4], vector<string>& r, int y, int x) {
  if (0 <= y && y < r.size() && 0 <= x && x < r[y].size())
    if ('a' <= r[y][x] && r[y][x] <= 'd') ok[r[y][x] - 'a'] = 0;
}
int main() {
  int H, W;
  cin >> H >> W;
  vector<string> b(H);
  for (int i = 0; i < H; ++i) cin >> b[i];
  vector<string> r = b;
  for (int y = 0; y < H; ++y)
    for (int x = 0; x < W; ++x)
      if (r[y][x] != '.') r[y][x] = 'e';
  for (int y = 0; y < H; ++y)
    for (int x = 0; x < W; ++x)
      if (b[y][x] == 'b') {
        cout << "NO" << endl;
        return 0;
      } else if (b[y][x] == 'w') {
        bool ok[4] = {1, 1, 1, 1};
        if (x + 2 < W && b[y][x + 1] == 'b' && b[y][x + 2] == 'w') {
          b[y][x] = b[y][x + 1] = b[y][x + 2] = '.';
          rm(ok, r, y - 1, x + 0);
          rm(ok, r, y - 1, x + 1);
          rm(ok, r, y - 1, x + 2);
          rm(ok, r, y, x - 1);
          rm(ok, r, y, x + 3);
          rm(ok, r, y + 1, x + 0);
          rm(ok, r, y + 1, x + 1);
          rm(ok, r, y + 1, x + 2);
          for (char c = 'a'; c <= 'd'; ++c)
            if (ok[c - 'a']) {
              r[y][x] = r[y][x + 1] = r[y][x + 2] = c;
              break;
            }
        } else if (y + 2 < H && b[y + 1][x] == 'b' && b[y + 2][x] == 'w') {
          b[y][x] = b[y + 1][x] = b[y + 2][x] = '.';
          rm(ok, r, y + 0, x - 1);
          rm(ok, r, y + 1, x - 1);
          rm(ok, r, y + 2, x - 1);
          rm(ok, r, y - 1, x);
          rm(ok, r, y + 3, x);
          rm(ok, r, y + 0, x + 1);
          rm(ok, r, y + 1, x + 1);
          rm(ok, r, y + 2, x + 1);
          for (char c = 'a'; c <= 'd'; ++c)
            if (ok[c - 'a']) {
              r[y][x] = r[y + 1][x] = r[y + 2][x] = c;
              break;
            }
        } else {
          cout << "NO" << endl;
          return 0;
        }
      }
  cout << "YES" << endl;
  for (int y = 0; y < H; ++y) cout << r[y] << endl;
}
