#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e6 + 5;
struct HAP {
  int x, y, val;
  void init(int x, int y, int val) {
    this->x = x;
    this->y = y;
    this->val = val;
  }
  bool operator<(const HAP &p) const { return val > p.val; }
} hs[maxn];
int n, m, top, a[1005][1005], vis[1005][1005], b[1005][1005];
int par[1000005], num[1000005];
long long tot;
int dx[4] = {0, 0, -1, 1};
int dy[4] = {1, -1, 0, 0};
void init() {
  for (int i = 0; i < n * m; i++) {
    par[i] = i;
    num[i] = 1;
  }
}
int find(int x) { return par[x] == x ? x : par[x] = find(par[x]); }
void unite(int x, int y) {
  x = find(x);
  y = find(y);
  if (x == y) return;
  par[y] = x;
  num[x] += num[y];
}
void sol(int x, int y) {
  int xx, yy, i;
  for (i = 0; i < 4; i++) {
    xx = x + dx[i], yy = y + dy[i];
    if (xx < 0 || xx >= n || yy < 0 || yy >= m || a[xx][yy] < a[x][y]) continue;
    unite(x * m + y, xx * m + yy);
  }
}
void Make(int x, int y, int h, long long &sum) {
  int xx, yy, i;
  b[x][y] = h;
  sum--;
  for (i = 0; i < 4; i++) {
    xx = x + dx[i], yy = y + dy[i];
    if (xx < 0 || xx >= n || yy < 0 || yy >= m) continue;
    if (a[xx][yy] < h || sum == 0 || b[xx][yy] != 0) continue;
    Make(xx, yy, h, sum);
  }
}
int main() {
  int i, j, t;
  memset(a, -1, sizeof(a));
  scanf("%d%d%I64d", &n, &m, &tot);
  init();
  for (i = 0; i < n; i++) {
    for (j = 0; j < m; j++) {
      scanf("%d", &t);
      hs[top++].init(i, j, t);
    }
  }
  sort(hs, hs + top);
  int f = -1;
  for (i = 0; i < top; i = j) {
    for (j = i; j < top && hs[j].val == hs[i].val; j++) {
      a[hs[j].x][hs[j].y] = hs[j].val;
    }
    int p;
    for (p = i; p < j; p++) {
      sol(hs[p].x, hs[p].y);
    }
    for (p = i; p < j; p++) {
      if (tot % hs[i].val == 0 &&
          tot / hs[i].val <= num[find(hs[p].x * m + hs[p].y)])
        f = p;
    }
  }
  if (f != -1) {
    puts("YES");
    long long tmp = tot / hs[f].val;
    Make(hs[f].x, hs[f].y, hs[f].val, tmp);
    for (i = 0; i < n; i++) {
      for (j = 0; j < m; j++) {
        if (j) putchar(' ');
        printf("%d", b[i][j]);
      }
      putchar('\n');
    }
  } else
    puts("NO");
  return 0;
}
