#include <bits/stdc++.h>
using namespace std;
struct cell {
  int c;
  bool up, down, left, right;
};
const int MAXN = 1001;
cell cells[MAXN][MAXN];
cell flipped[MAXN][MAXN];
void solve(cell arr[MAXN][MAXN], int h, int w, bool flipped) {
  arr[0][0].c = 1;
  for (int j = 1; j < w; ++j) {
    if (!arr[0][j].left) {
      arr[0][j].c = 3 - arr[0][j - 1].c;
    } else {
      arr[0][j].c = arr[0][j - 1].c;
    }
  }
  for (int i = 1; i < h; ++i) {
    arr[i][0].c = 1;
    for (int j = 1; j < w; ++j) {
      if (!arr[i][j].left) {
        arr[i][j].c = 3 - arr[i][j - 1].c;
      } else {
        arr[i][j].c = arr[i][j - 1].c;
      }
    }
    int s = 0, ns = 0;
    for (int j = 0; j < w; ++j) {
      if ((arr[i][j].up && arr[i][j].c == arr[i - 1][j].c) ||
          (!arr[i][j].up && arr[i][j].c != arr[i - 1][j].c))
        ++s;
      else
        ++ns;
    }
    if (ns > s) {
      for (int j = 0; j < w; ++j) arr[i][j].c = 3 - arr[i][j].c;
    }
  }
  cout << "YES\n";
  if (!flipped) {
    for (int i = 0; i < h; ++i) {
      for (int j = 0; j < w; ++j) cout << arr[i][j].c << " ";
      cout << "\n";
    }
  } else {
    for (int i = 0; i < w; ++i) {
      for (int j = 0; j < h; ++j) cout << arr[j][i].c << " ";
      cout << "\n";
    }
  }
}
int main() {
  int h, w, k;
  cin >> h >> w >> k;
  int num_cons = 0;
  for (int i = 0; i < h; ++i) {
    string s;
    cin >> s;
    num_cons += static_cast<int>(s.length());
    for (int j = 0; j < w - 1; ++j) {
      if (s[j] == 'E') {
        cells[i][j + 1].left = true;
        cells[i][j].right = true;
        flipped[j + 1][i].up = true;
        flipped[j][i].down = true;
      } else {
        cells[i][j + 1].left = false;
        cells[i][j].right = false;
        flipped[j + 1][i].up = false;
        flipped[j][i].down = false;
      }
    }
    if (i != h - 1) {
      cin >> s;
      num_cons += static_cast<int>(s.length());
      for (int j = 0; j < w; ++j) {
        if (s[j] == 'E') {
          cells[i + 1][j].up = true;
          cells[i][j].down = true;
          flipped[j][i + 1].left = true;
          flipped[j][i].right = true;
        } else {
          cells[i + 1][j].up = false;
          cells[i][j].down = false;
          flipped[j][i + 1].left = false;
          flipped[j][i].right = false;
        }
      }
    }
  }
  if (k == 1) {
    int cnt = 0;
    for (int i = 0; i < h - 1; ++i)
      for (int j = 0; j < w; ++j) {
        if (cells[i][j].right) ++cnt;
        if (cells[i][j].down) ++cnt;
      }
    for (int j = 0; j < w; ++j)
      if (cells[h - 1][j].right) ++cnt;
    if (cnt * 4 >= 3 * num_cons) {
      cout << "YES\n";
      for (int i = 0; i < h; ++i) {
        for (int j = 0; j < w; ++j) {
          cout << 1 << " ";
        }
        cout << "\n";
      }
    } else {
      cout << "NO\n";
    }
  } else {
    if (h <= w)
      solve(cells, h, w, false);
    else
      solve(flipped, w, h, true);
  }
  return 0;
}
