#include <bits/stdc++.h>
using namespace std;
long long int n, m, p;
long long int a[2105][2105];
long long int sz[2105 * 2105];
long long int fa[2105 * 2105];
pair<long long int, pair<long long int, long long int> > arr[2105 * 2105];
const int mv[4][2] = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};
long long int find(long long int x) {
  return fa[x] == x ? x : fa[x] = find(fa[x]);
}
void merge(long long int a, long long int b) {
  a = find(a);
  b = find(b);
  if (a != b) {
    sz[a] += sz[b];
    sz[b] = 0;
    fa[b] = a;
  }
}
long long int out[2105][2105];
long long int height, freq;
void dfs(long long int x, long long int y) {
  if (x < 0 || x >= n || y < 0 || y >= m) return;
  if (out[x][y]) return;
  if (a[x][y] < height) return;
  if (!freq) return;
  out[x][y] = height;
  freq--;
  dfs(x + 1, y);
  dfs(x - 1, y);
  dfs(x, y + 1);
  dfs(x, y - 1);
  return;
}
int main() {
  ios_base::sync_with_stdio(0);
  long long int i, j, k;
  cin >> n >> m >> p;
  for (i = 0; i < (n); ++i)
    for (j = 0; j < (m); ++j) {
      cin >> a[i][j];
      arr[i * m + j] = pair<long long int, pair<long long int, long long int> >(
          a[i][j], pair<long long int, long long int>(i, j));
    }
  for (i = 0; i < (n * m); ++i) {
    fa[i] = i;
    sz[i] = 1;
  }
  sort(arr, arr + n * m);
  reverse(arr, arr + n * m);
  long long int ans = -1;
  i = 0;
  while (i < n * m) {
    j = i;
    while (j < n * m && arr[j].first == arr[i].first) {
      long long int x0, x, y0, y;
      x0 = arr[j].second.first;
      y0 = arr[j].second.second;
      for (k = 0; k < (4); ++k) {
        x = x0 + mv[k][0];
        y = y0 + mv[k][1];
        if (x >= 0 && x < n && y >= 0 && y < m)
          if (a[x][y] >= arr[j].first) merge(x * m + y, x0 * m + y0);
      }
      j++;
    }
    if (arr[i].first && (p % arr[i].first) == 0)
      for (k = i; k < j; ++k) {
        long long int x, y;
        x = arr[k].second.first;
        y = arr[k].second.second;
        if (sz[find(x * m + y)] >= p / arr[i].first) {
          ans = x * m + y;
          break;
        }
      }
    if (ans != -1) break;
    i = j;
  }
  if (ans == -1) {
    cout << "NO\n";
    return 0;
  }
  cout << "YES\n";
  height = a[ans / m][ans % m];
  freq = p / height;
  dfs(ans / m, ans % m);
  for (i = 0; i < (n); ++i) {
    for (j = 0; j < (m); ++j) cout << out[i][j] << " ";
    cout << endl;
  }
  return 0;
}
