#include <bits/stdc++.h>
using namespace std;
template <class P, class Q>
void smin(P &a, Q b) {
  if (b < a) a = b;
}
template <class P, class Q>
void smax(P &a, Q b) {
  if (b > a) a = b;
}
template <class P, class Q>
bool in(const P &a, const Q &b) {
  return a.find(b) != a.end();
}
int c(int h, int w) {
  int tot = h - 1;
  for (int i = (0); i < int(h); ++i) {
    if (i % 2 == 0)
      tot += w - 1;
    else {
      if (i + 1 < h)
        tot += 2 * (w - 1);
      else
        tot += w - 1;
    }
  }
  return tot;
}
const int MAXN = 1024;
int h, w, k, board[MAXN][MAXN];
string row[MAXN], col[MAXN];
void fill1(int i, int j) {
  if (j && board[i][j - 1]) {
    if (row[i][j - 1] == 'E')
      board[i][j] = board[i][j - 1];
    else
      board[i][j] = 3 - board[i][j - 1];
  } else if (i && board[i - 1][j]) {
    if (col[i - 1][j] == 'E')
      board[i][j] = board[i - 1][j];
    else
      board[i][j] = 3 - board[i - 1][j];
  }
}
void fill2(int r, int c) {
  int poll[] = {0, 0, 0};
  if (r > 0 && board[r - 1][c])
    poll[col[r - 1][c] == 'E' ? board[r - 1][c] : 3 - board[r - 1][c]]++;
  if (c > 0 && board[r][c - 1])
    poll[row[r][c - 1] == 'E' ? board[r][c - 1] : 3 - board[r][c - 1]]++;
  if (r + 1 < h && board[r + 1][c])
    poll[col[r][c] == 'E' ? board[r + 1][c] : 3 - board[r + 1][c]]++;
  if (c + 1 < w && board[r][c + 1])
    poll[row[r][c] == 'E' ? board[r][c + 1] : 3 - board[r][c + 1]]++;
  board[r][c] = poll[1] >= poll[2] ? 1 : 2;
}
int main() {
  ios::sync_with_stdio(false);
  cin >> h >> w >> k;
  if (k == 1) {
    int tot = 0;
    for (int i = (0); i < int(2 * h - 1); ++i) {
      string s;
      cin >> s;
      tot += count((s).begin(), (s).end(), 'E');
    }
    if (tot * 4 >= 3 * (w * (h - 1) + h * (w - 1))) {
      cout << "YES" << endl;
      for (int i = (0); i < int(h); ++i) {
        for (int j = (0); j < int(w); ++j) cout << 1 << " ";
        cout << "\n";
      }
    } else
      cout << "NO" << endl;
    return 0;
  }
  for (int i = (0); i < int(2 * h - 1); ++i) {
    if (i % 2)
      cin >> col[i / 2];
    else
      cin >> row[i / 2];
  }
  board[0][0] = 1;
  if (c(h, w) >= c(w, h)) {
    for (int i = (1); i < int(h); ++i) fill1(i, 0);
    for (int i = (0); i < int(h); ++i)
      if (i % 2 == 0)
        for (int j = (1); j < int(w); ++j) fill1(i, j);
    for (int i = (0); i < int(h); ++i)
      if (i % 2 == 1)
        for (int j = (1); j < int(w); ++j) fill2(i, j);
  } else {
    for (int i = (1); i < int(w); ++i) fill1(0, i);
    for (int j = (0); j < int(w); ++j)
      if (j % 2 == 0)
        for (int i = (1); i < int(h); ++i) fill1(i, j);
    for (int j = (0); j < int(w); ++j)
      if (j % 2 == 1)
        for (int i = (1); i < int(h); ++i) fill2(i, j);
  }
  cout << "YES" << endl;
  for (int i = (0); i < int(h); ++i) {
    for (int j = (0); j < int(w); ++j) cout << board[i][j] << " ";
    cout << "\n";
  }
  return 0;
}
