#include <bits/stdc++.h>

using namespace std;

int mapp[20][20];
int hang[20];
int main(void)
{
	int n,m,k;
	cin>>n>>m>>k;
	for (int i=1;i<=n;i++)
	for (int j=1;j<=m;j++)
	{
		cin>>mapp[i][j];
	}
	k=min(k,min(n,m));
	int ans=0;
	for (int st=0;st<(1<<m);st++) //位运算枚举所要选取的列 
	{
		int sum=0;
		int num=__builtin_popcount(st);
		if (num>k) continue;
		memset(hang,0,sizeof(hang));
		for (int i=0;i<m;i++)
		{
			if ((1<<i)&st) //注意!不能误写成((1<<i)&st==1)  (1<<i)&st的结果非零即可 
			{
				for (int j=1;j<=n;j++)
				{
					sum+=mapp[j][i+1];
				}
			}
			else
			{
				for (int j=1;j<=n;j++)
				{
					hang[j]+=mapp[j][i+1]; //在该列不选取时,顺便把不选取的列对应的每一行的和求出来 
				}
			}
		}
		sort(hang+1,hang+1+n,greater<int>()); //位运算枚举要选取的列,排序后贪心行 
		for (int s=1;s<=k-num;s++)
			sum+=hang[s];
		ans=max(ans,sum);
	}
	cout<<ans<<endl;
}