#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1E4;
void solve()
{
int n, m, x, y, zz; cin >> n >> m >> x >> y >> zz;
vector<vector<int>>a(n + 10, vector<int>(m + 10)), z(n + 10, vector<int>(m + 10)), s(n + 10, vector<int>(m + 10));
for(int i = 1; i <= n; i ++)
for(int j = 1; j <= m; j ++) cin >> a[i][j];
for(int i = 1; i <= n; i ++)
for(int j = 1; j <= m; j ++) z[i][j] = z[i - 1][j] + (a[i][j] == 0), s[i][j] = s[i - 1][j] + a[i][j];
int ans = 0;
for(int u = 1; u <= n; u ++)
{
for(int v = u; v <= min(n, u + x - 1); v ++)
{
vector<int>sum(m + 10), sz(m + 10);
for(int k = 1; k <= m; k ++)
sum[k] = sum[k - 1] + s[v][k] - s[u - 1][k], sz[k] = sz[k - 1] + z[v][k] - z[u - 1][k];
deque<int>q; q.push_back(0);
for(int i = 1; i <= m; i ++)
{
while(!q.empty() && (sz[i] - sz[q.front()] > zz || i - q.front() > y)) q.pop_front();
ans = max(ans, sum[i] - sum[q.front()]);
while(!q.empty() && sum[i] <= sum[q.back()]) q.pop_back();
q.push_back(i);
}
}
}
cout << ans << '\n';
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
int t = 1;
// cin >> t;
while(t --) solve();
}