#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e3 + 10;
int a[maxn][maxn];
int sz[maxn * maxn];
int nu[maxn][maxn];
int n, m;
inline int mp(int x, int y) { return x * m + y; }
int X(int x) { return x / m; }
int Y(int x) { return x - X(x) * m; }
pair<int, int> hlp[maxn * maxn];
vector<int> v[maxn * maxn];
inline void mrg(int x, int y) {
  if (x == y) return;
  if (sz[x] < sz[y]) return mrg(y, x);
  while (v[y].size()) {
    int c = v[y].back();
    int r = X(c);
    int rr = Y(c);
    nu[r][rr] = x;
    v[x].push_back(c);
    v[y].pop_back();
  }
  sz[x] = v[x].size();
}
int ans[maxn][maxn];
int main() {
  long long k;
  cin >> n >> m >> k;
  for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++) {
      cin >> a[i][j];
      sz[mp(i, j)] = 1;
      nu[i][j] = mp(i, j);
      v[mp(i, j)].push_back(mp(i, j));
      hlp[mp(i, j)] = pair<int, int>(-a[i][j], mp(i, j));
    }
  sort(hlp, hlp + n * m);
  for (int i = 0; i < n * m; i++) {
    int x = X(hlp[i].second);
    int y = Y(hlp[i].second);
    int val = -hlp[i].first;
    for (int i = -1; i <= 1; i++)
      for (int j = -1; j <= 1; j++)
        if (i * j == 0 && x + i < n && y + j < m && x + i >= 0 && y + j >= 0 &&
            a[x + i][y + j] >= a[x][y])
          mrg(nu[x][y], nu[x + i][y + j]);
    if (k % val == 0) {
      long long N = k / val;
      if (sz[nu[x][y]] >= N) {
        cout << "YES\n";
        queue<pair<int, int> > q;
        q.push(pair<int, int>(x, y));
        ans[x][y] = val;
        N--;
        while (N != 0) {
          int x = q.front().first;
          int y = q.front().second;
          q.pop();
          for (int i = -1; i <= 1; i++)
            for (int j = -1; j <= 1; j++)
              if (N && i * j == 0 && x + i < n && y + j < m && x + i >= 0 &&
                  y + j >= 0 && nu[x][y] == nu[x + i][y + j] &&
                  ans[x + i][y + j] == 0) {
                ans[x + i][y + j] = val;
                N--;
                q.push(pair<int, int>(x + i, y + j));
              }
        }
        for (int i = 0; i < n; i++, cout << "\n")
          for (int j = 0; j < m; j++) cout << ans[i][j] << ' ';
        return 0;
      }
    }
  }
  cout << "NO";
  return 0;
}
