#include <bits/stdc++.h>
using namespace std;
template <typename T>
inline void checkMin(T& a, T b) {
  if (a > b) a = b;
}
template <typename T>
inline void checkMax(T& a, T b) {
  if (a < b) a = b;
}
const int MAXN = 1010;
int main() {
  int h, w, k;
  static bool up[MAXN][MAXN], left[MAXN][MAXN];
  scanf("%d%d%d", &h, &w, &k);
  for (int i = 1; i <= h; ++i) {
    static char s[MAXN];
    scanf("%s", &s[2]);
    for (int j = 2; j <= w; ++j) {
      left[i][j] = s[j] == 'E';
    }
    if (i < h) {
      scanf("%s", &s[1]);
      for (int j = 1; j <= w; ++j) {
        up[i + 1][j] = s[j] == 'E';
      }
    }
  }
  static bool a[MAXN][MAXN];
  if (k == 1) {
    int c1 = count(up[0], up[MAXN], true);
    int c2 = count(left[0], left[MAXN], true);
    if (4 * (c1 + c2) >= 3 * (2 * w * h - w - h)) {
      printf("YES\n");
      for (int i = 0; i < int(h); ++i) {
        for (int j = 0; j < int(w); ++j) {
          printf("1%s", j + 1 == w ? "\n" : " ");
        }
      }
    } else {
      printf("NO\n");
    }
    return 0;
  } else if (h >= w) {
    a[1][1] = 1;
    for (int i = 2; i <= h; ++i) {
      a[i][1] = a[i - 1][1] ^ !up[i][1];
    }
    for (int j = 2; j <= w; ++j) {
      a[1][j] = 1;
      int c = a[1][j - 1] ^ a[1][j] ^ left[1][j];
      for (int i = 2; i <= h; ++i) {
        a[i][j] = a[i - 1][j] ^ !up[i][j];
        c += a[i][j - 1] ^ a[i][j] ^ left[i][j];
      }
      if (c < h - c) {
        for (int i = 1; i <= h; ++i) {
          a[i][j] ^= 1;
        }
      }
    }
  } else {
    a[1][1] = 1;
    for (int j = 2; j <= w; ++j) {
      a[1][j] = a[1][j - 1] ^ !left[1][j];
    }
    for (int i = 2; i <= h; ++i) {
      a[i][1] = 1;
      int c = a[i - 1][1] ^ a[i][1] ^ up[i][1];
      for (int j = 2; j <= w; ++j) {
        a[i][j] = a[i][j - 1] ^ !left[i][j];
        c += a[i - 1][j] ^ a[i][j] ^ up[i][j];
      }
      if (c < w - c) {
        for (int j = 1; j <= w; ++j) {
          a[i][j] ^= 1;
        }
      }
    }
  }
  printf("YES\n");
  for (int i = 0; i < int(h); ++i) {
    for (int j = 0; j < int(w); ++j) {
      printf("%d%s", a[i + 1][j + 1] + 1, j + 1 == w ? "\n" : " ");
    }
  }
  return 0;
}
