#include <bits/stdc++.h>
using namespace std;
inline void pisz(int n) { printf("%d\n", n); }
template <typename T, typename TT>
ostream& operator<<(ostream& s, pair<T, TT> t) {
  return s << "(" << t.first << "," << t.second << ")";
}
template <typename T>
ostream& operator<<(ostream& s, vector<T> t) {
  for (int(i) = 0; (i) < (((int)((t).size()))); ++(i)) s << t[i] << " ";
  return s;
}
int t[2005][2005], temp[2005][2005];
int main() {
  int(h), (w), (k);
  scanf("%d %d %d", &(h), &(w), &(k));
  int all = 0, satisfied = 0;
  for (int(i) = 0; (i) < (2 * h - 1); ++(i)) {
    char s[2005];
    scanf("%s", s);
    if (1 & i) {
      for (int(j) = 0; (j) < (w); ++(j)) t[i][2 * j] = s[j];
      all += w;
      for (int(j) = 0; (j) < (w); ++(j))
        if ('E' == s[j]) ++satisfied;
    } else {
      for (int(j) = 0; (j) < (w - 1); ++(j)) t[i][2 * j + 1] = s[j];
      all += w - 1;
      for (int(j) = 0; (j) < (w - 1); ++(j))
        if ('E' == s[j]) ++satisfied;
    }
  }
  if (k == 1) {
    if (4 * satisfied >= 3 * all) {
      printf("YES\n");
      for (int(i) = 0; (i) < (h); ++(i)) {
        for (int(j) = 0; (j) < (w); ++(j)) printf("%d ", 1);
        printf("\n");
      }
    } else {
      printf("NO\n");
    }
    return 0;
  }
  bool flipped = 0;
  if (w < h) {
    flipped = 1;
    for (int(i) = 0; (i) < (2 * h - 1); ++(i))
      for (int(j) = 0; (j) < (2 * w - 1); ++(j)) temp[i][j] = t[i][j];
    for (int(i) = 0; (i) < (2 * h - 1); ++(i))
      for (int(j) = 0; (j) < (2 * w - 1); ++(j)) t[j][i] = temp[i][j];
    swap(w, h);
  }
  for (int(i) = 0; (i) < (h); ++(i)) {
    t[2 * i][0] = 1;
    for (int(j) = (1); (j) <= (w - 1); ++j) {
      if (t[2 * i][2 * j - 1] == 'E')
        t[2 * i][2 * j] = t[2 * i][2 * (j - 1)];
      else
        t[2 * i][2 * j] = 3 - t[2 * i][2 * (j - 1)];
    }
    if (i > 0) {
      int ok = 0;
      for (int(j) = 0; (j) < (w); ++(j)) {
        if (t[2 * i - 1][2 * j] == 'E') {
          if (t[2 * i][2 * j] == t[2 * (i - 1)][2 * j]) ++ok;
        } else {
          if (t[2 * i][2 * j] != t[2 * (i - 1)][2 * j]) ++ok;
        }
      }
      if (2 * ok < w) {
        for (int(j) = 0; (j) < (w); ++(j))
          t[2 * i][2 * j] = 3 - t[2 * i][2 * j];
      }
    }
  }
  if (flipped) {
    for (int(i) = 0; (i) < (2 * h - 1); ++(i))
      for (int(j) = 0; (j) < (2 * w - 1); ++(j)) temp[i][j] = t[i][j];
    for (int(i) = 0; (i) < (2 * h - 1); ++(i))
      for (int(j) = 0; (j) < (2 * w - 1); ++(j)) t[j][i] = temp[i][j];
    swap(w, h);
  }
  printf("YES\n");
  for (int(i) = 0; (i) < (h); ++(i)) {
    for (int(j) = 0; (j) < (w); ++(j)) printf("%d ", t[2 * i][2 * j]);
    printf("\n");
  }
}
