#include <cstdio>
#include <iostream>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <cstdlib>

#define rep( i, l, r ) for (int i = l; i <= r; i++)
#define down( i, l, r ) for (int i = l; i >= r; i--)
#define MS 1009
#define MAX 1073741823

using namespace std;

int n, m, num[109][9], dp[109][5][20], ans, k;

int main()
{
	scanf("%d%d%d", &n, &m, &k);
	rep(i, 1, n) rep(j, 1, m) scanf("%d", &num[i][j]);
	rep(i, 0, 108)  rep(j, 0, 4) rep(a, 0, 19) dp[i][j][a] = -MAX;
	dp[0][0][0] = 0;
	rep(i, 0, n-1) rep(j, 0, k)
	{
		if (m == 1)
		{
			dp[i+1][0][j+0] = max(dp[i+1][0][j+0], dp[i][0][j]);
			dp[i+1][1][j+1] = max(dp[i+1][1][j+1], dp[i][0][j] + num[i+1][1]);
			dp[i+1][0][j+0] = max(dp[i+1][0][j+0], dp[i][1][j]);
			dp[i+1][1][j+0] = max(dp[i+1][1][j+0], dp[i][1][j] + num[i+1][1]);
		}
		else
		{
			dp[i+1][0][j+0] = max(dp[i+1][0][j+0], dp[i][0][j]);
			dp[i+1][1][j+1] = max(dp[i+1][1][j+1], dp[i][0][j] + num[i+1][1]);
			dp[i+1][2][j+1] = max(dp[i+1][2][j+1], dp[i][0][j] + num[i+1][2]);
			dp[i+1][3][j+2] = max(dp[i+1][3][j+2], dp[i][0][j] + num[i+1][1] + num[i+1][2]);
			dp[i+1][4][j+1] = max(dp[i+1][4][j+1], dp[i][0][j] + num[i+1][1] + num[i+1][2]);
			
			dp[i+1][0][j+0] = max(dp[i+1][0][j+0], dp[i][1][j]);
			dp[i+1][1][j+0] = max(dp[i+1][1][j+0], dp[i][1][j] + num[i+1][1]);
			dp[i+1][2][j+1] = max(dp[i+1][2][j+1], dp[i][1][j] + num[i+1][2]);
			dp[i+1][3][j+1] = max(dp[i+1][3][j+1], dp[i][1][j] + num[i+1][1] + num[i+1][2]);
			dp[i+1][4][j+1] = max(dp[i+1][4][j+1], dp[i][1][j] + num[i+1][1] + num[i+1][2]);
			
			dp[i+1][0][j+0] = max(dp[i+1][0][j+0], dp[i][2][j]);
			dp[i+1][1][j+1] = max(dp[i+1][1][j+1], dp[i][2][j] + num[i+1][1]);
			dp[i+1][2][j+0] = max(dp[i+1][2][j+0], dp[i][2][j] + num[i+1][2]);
			dp[i+1][3][j+1] = max(dp[i+1][3][j+1], dp[i][2][j] + num[i+1][1] + num[i+1][2]);
			dp[i+1][4][j+1] = max(dp[i+1][4][j+1], dp[i][2][j] + num[i+1][1] + num[i+1][2]);
			
			dp[i+1][0][j+0] = max(dp[i+1][0][j+0], dp[i][3][j]);
			dp[i+1][1][j+0] = max(dp[i+1][1][j+0], dp[i][3][j] + num[i+1][1]);
			dp[i+1][2][j+0] = max(dp[i+1][2][j+0], dp[i][3][j] + num[i+1][2]);
			dp[i+1][3][j+0] = max(dp[i+1][3][j+0], dp[i][3][j] + num[i+1][1] + num[i+1][2]);
			dp[i+1][4][j+1] = max(dp[i+1][4][j+1], dp[i][3][j] + num[i+1][1] + num[i+1][2]);
			
			dp[i+1][0][j+0] = max(dp[i+1][0][j+0], dp[i][4][j]);
			dp[i+1][1][j+1] = max(dp[i+1][1][j+1], dp[i][4][j] + num[i+1][1]);
			dp[i+1][2][j+1] = max(dp[i+1][2][j+1], dp[i][4][j] + num[i+1][2]);
			dp[i+1][3][j+2] = max(dp[i+1][3][j+2], dp[i][4][j] + num[i+1][1] + num[i+1][2]);
			dp[i+1][4][j+0] = max(dp[i+1][4][j+0], dp[i][4][j] + num[i+1][1] + num[i+1][2]);
		}
	}
	ans = max(dp[n][0][k], dp[n][1][k]);
	if (m == 2)
	{ ans = max(ans, dp[n][2][k]); ans = max(ans, dp[n][3][k]); ans = max(ans, dp[n][4][k]); }
	printf("%d\n", ans);
	return 0;
}