#include <bits/stdc++.h>
using namespace std;
int n, m, a[1002][1002], par[1000005], size[1000005];
int dy[] = {1, -1, 0, 0}, dx[] = {0, 0, 1, -1};
long long p;
int root(int p) {
  if (p == par[p]) return p;
  return par[p] = root(par[p]);
}
void uni(int p, int q) {
  p = root(p);
  q = root(q);
  if (p != q) {
    par[q] = p;
    size[p] += size[q];
    size[q] = 0;
  }
}
struct info {
  int var, y, x;
  info(int p, int q, int r) { var = p, y = q, x = r; }
  bool operator<(const info &i) const {
    if (var == i.var) {
      if (y == i.y) return x < i.x;
      return y < i.y;
    }
    return var > i.var;
  }
};
vector<info> v;
int cnt, output[1002][1002];
void dfs(int y, int x, int value) {
  if (!(y >= 0 && y < n && x >= 0 && x < m)) return;
  if (!cnt) return;
  if (a[y][x] < value) return;
  if (output[y][x]) return;
  --cnt;
  output[y][x] = value;
  dfs(y - 1, x, value);
  dfs(y + 1, x, value);
  dfs(y, x - 1, value);
  dfs(y, x + 1, value);
}
int main() {
  cin >> n >> m >> p;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      scanf("%d", &a[i][j]), par[i * m + j] = i * m + j;
      v.push_back(info(a[i][j], i, j));
      size[i * m + j] = 1;
    }
  }
  sort(v.begin(), v.end());
  int ansy = -1, ansx = -1;
  for (int i = 0, j = 0; i < v.size(); i = j) {
    while (j < n * m && v[i].var == v[j].var) {
      for (int k = 0; k < 4; k++) {
        int ny = v[j].y + dy[k], nx = v[j].x + dx[k];
        if (!(ny >= 0 && ny < n && nx >= 0 && nx < m)) continue;
        if (a[ny][nx] >= v[i].var) uni(ny * m + nx, v[j].y * m + v[j].x);
      }
      ++j;
    }
    if (v[i].var && p % v[i].var == 0) {
      long long need = p / v[i].var;
      for (int t = i; t < j; t++) {
        if (size[root(v[t].y * m + v[t].x)] >= need) {
          ansy = v[t].y, ansx = v[t].x;
          break;
        }
      }
      if (ansy != -1) break;
    }
  }
  if (ansy == -1) {
    puts("NO");
    return 0;
  }
  puts("YES");
  cnt = p / a[ansy][ansx];
  dfs(ansy, ansx, a[ansy][ansx]);
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) printf("%d ", output[i][j]);
    puts("");
  }
}
