#include <bits/stdc++.h>
using namespace std;
int n, m, k, p, a[1000][1000];
set<pair<int, int> > r, c;
long long ans = -1000000000000000000LL, rm[1000001], cm[1000001];
int main() {
  cin >> n >> m >> k >> p;
  for (int i = (0); i < (n); i++)
    for (int j = (0); j < (m); j++) cin >> a[i][j];
  for (int i = (0); i < (n); i++) {
    int rc = 0;
    for (int j = (0); j < (m); j++) rc += a[i][j];
    r.insert({rc, i});
  }
  for (int j = (0); j < (m); j++) {
    int cc = 0;
    for (int i = (0); i < (n); i++) cc += a[i][j];
    c.insert({cc, j});
  }
  rm[0] = cm[0] = 0LL;
  for (int i = (1); i < (k + 1); i++) {
    pair<int, int> pr = *r.rbegin();
    r.erase(pr);
    rm[i] = rm[i - 1] + pr.first;
    pr.first -= m * p;
    r.insert(pr);
  }
  for (int i = (1); i < (k + 1); i++) {
    pair<int, int> pr = *c.rbegin();
    c.erase(pr);
    cm[i] = cm[i - 1] + pr.first;
    pr.first -= n * p;
    c.insert(pr);
  }
  for (int kr = (0); kr < (k + 1); kr++) {
    long long kc = k - kr;
    ans = max(ans, rm[kr] + cm[kc] - kc * kr * p);
  }
  cout << ans << '\n';
}
