#include <bits/stdc++.h>
using namespace std;
const int maxn = 3e3 + 14;
long long n, m, k, f[maxn][maxn], ans = 0;
long long query(int i, int j){
	i --; j--;
	return f[i + k][j + k] - f[i][j + k] - f[i + k][j] + f[i][j];
}
void solve(){
	cin >> n >> m >> k;
	memset(f, 0, sizeof f);
	for (int i = 1; i <= n; i++){
		for (int j = 1; j <= m; j++) {
			long long x;
			cin >> x;
			f[i][j] = f[i - 1][j] + f[i][j - 1] + x - f[i - 1][j - 1];
		}
	}
	for (int i = 1; i <= n - k + 1; i++){
		for (int j = 1; j <= m - k + 1; j++){
			ans = max(ans, query(i,j));
		}
	}
	
	cout << ans;
}
int main(){
	ios_base::sync_with_stdio(0);
	cin.tie(0);    cout.tie(0);
	if (fopen("input.txt","r")) {
		freopen("input.txt","r",stdin);
		freopen("output.txt","w",stdout);
	}
	solve();
	return 0;
}
