#include <bits/stdc++.h>
using namespace std;
char a[1010][1010];
char b[1010][1010];
int c[1010][1010];
bool judge(int x, int y, char s) {
  if (x == y && s == 'E') return true;
  if (x != y && s != 'E') return true;
  return false;
}
int main() {
  int n, m, k;
  scanf("%d %d %d", &n, &m, &k);
  int same = 0;
  int dif = 0;
  scanf("%s", &a[0][1]);
  for (int j = 1; j < m; j++) {
    if (a[0][j] == 'E')
      same++;
    else
      dif++;
  }
  for (int i = 1; i < n; i++) {
    scanf("%s", &b[i][0]);
    for (int j = 0; j < m; j++)
      if (b[i][j] == 'E')
        same++;
      else
        dif++;
    scanf("%s", &a[i][1]);
    for (int j = 1; j < m; j++)
      if (a[i][j] == 'E')
        same++;
      else
        dif++;
  }
  if (k == 1) {
    if (same * 4 >= (same + dif) * 3) {
      printf("YES\n");
      for (int i = 1; i <= n; i++)
        for (int j = 1; j <= m; j++) {
          printf("1");
          if (j == m)
            printf("\n");
          else
            printf(" ");
        }
    } else
      printf("NO\n");
    return 0;
  }
  if (m >= n) {
    c[0][0] = 0;
    for (int j = 1; j < m; j++) {
      if (a[0][j] == 'E')
        c[0][j] = c[0][j - 1];
      else
        c[0][j] = c[0][j - 1] ^ 1;
    }
    for (int i = 1; i < n; i++) {
      if (b[i][0] == 'E')
        c[i][0] = c[i - 1][0];
      else
        c[i][0] = c[i - 1][0] ^ 1;
      for (int j = 2; j < m; j += 2) {
        bool flag = false;
        for (c[i][j - 1] = 0; c[i][j - 1] <= 1 && !flag; c[i][j - 1]++)
          for (c[i][j] = 0; c[i][j] <= 1 && !flag; c[i][j]++) {
            int cnt = 0;
            if (judge(c[i][j - 2], c[i][j - 1], a[i][j - 1])) cnt++;
            if (judge(c[i][j - 1], c[i][j], a[i][j])) cnt++;
            if (judge(c[i][j - 1], c[i - 1][j - 1], b[i][j - 1])) cnt++;
            if (judge(c[i][j], c[i - 1][j], b[i][j])) cnt++;
            if (cnt >= 3) flag = true;
          }
        c[i][j - 1]--;
        c[i][j]--;
      }
      if (m % 2 == 0) {
        if (b[i][m - 1] == 'E')
          c[i][m - 1] = c[i - 1][m - 1];
        else
          c[i][m - 1] = c[i - 1][m - 1] ^ 1;
      }
    }
  } else {
    c[0][0] = 0;
    for (int i = 1; i < n; i++) {
      if (b[i][0] == 'E')
        c[i][0] = c[i - 1][0];
      else
        c[i][0] = c[i - 1][0] ^ 1;
    }
    for (int j = 1; j < m; j++) {
      if (a[0][j] == 'E')
        c[0][j] = c[0][j - 1];
      else
        c[0][j] = c[0][j - 1] ^ 1;
      for (int i = 2; i < n; i += 2) {
        bool flag = false;
        for (c[i - 1][j] = 0; c[i - 1][j] <= 1 && !flag; c[i - 1][j]++)
          for (c[i][j] = 0; c[i][j] <= 1 && !flag; c[i][j]++) {
            int cnt = 0;
            if (judge(c[i - 2][j], c[i - 1][j], b[i - 1][j])) cnt++;
            if (judge(c[i - 1][j], c[i][j], b[i][j])) cnt++;
            if (judge(c[i - 1][j], c[i - 1][j - 1], a[i - 1][j])) cnt++;
            if (judge(c[i][j], c[i][j - 1], a[i][j])) cnt++;
            if (cnt >= 3) flag = true;
          }
        c[i - 1][j]--;
        c[i][j]--;
      }
      if (n % 2 == 0) {
        if (a[n - 1][j] == 'E')
          c[n - 1][j] = c[n - 1][j - 1];
        else
          c[n - 1][j] = c[n - 1][j - 1] ^ 1;
      }
    }
  }
  printf("YES\n");
  for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++) {
      printf("%d", c[i][j] + 1);
      if (j == m - 1)
        printf("\n");
      else
        printf(" ");
    }
  return 0;
}
