#include <bits/stdc++.h>
using namespace std;
const int N = 1001;
string h[2][N];
int ans[N][N];
int n, m, k, e;
void input() {
  cin >> n >> m >> k;
  for (int i = 0; i < 2 * n - 1; i++) {
    string s;
    cin >> s;
    h[i % 2][i / 2] = s;
    e += count(s.begin(), s.end(), 'E');
  }
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  input();
  if (k == 1) {
    if (4ll * e < 3ll * (2 * m * n - m - n)) return cout << "NO" << endl, 0;
    cout << "YES" << endl;
    for (int i = 0; i < n; i++)
      for (int j = 0; j < m; j++) cout << 1 << " \n"[j == m - 1];
    exit(0);
  }
  cout << "YES" << endl;
  if (m >= n) {
    for (int i = 0; i < n; i++) {
      ans[i][0] = 1;
      for (int j = 1; j < m; j++) {
        ans[i][j] = 3 - ans[i][j - 1];
        if (h[0][i][j - 1] == 'E') ans[i][j] = ans[i][j - 1];
      }
      if (i == 0) continue;
      int e = 0;
      for (int j = 0; j < m; j++)
        if ((h[1][i - 1][j] == 'E' && ans[i - 1][j] == ans[i][j]) ||
            (h[1][i - 1][j] == 'N' && ans[i - 1][j] != ans[i][j]))
          e++;
      if (2 * e < m)
        for (int j = 0; j < m; j++) ans[i][j] = 3 - ans[i][j];
    }
  } else {
    for (int i = 0; i < m; i++) {
      ans[0][i] = 1;
      for (int j = 1; j < n; j++) {
        ans[j][i] = 3 - ans[j - 1][i];
        if (h[1][j - 1][i] == 'E') ans[j][i] = ans[j - 1][i];
      }
      if (i == 0) continue;
      int e = 0;
      for (int j = 0; j < n; j++)
        if ((h[0][j][i - 1] == 'E' && ans[j][i - 1] == ans[j][i]) ||
            (h[0][j][i - 1] == 'N' && ans[j][i - 1] != ans[j][i]))
          e++;
      if (2 * e < n)
        for (int j = 0; j < n; j++) ans[j][i] = 3 - ans[j][i];
    }
  }
  for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++) cout << ans[i][j] << " \n"[j == m - 1];
}
