#include<bits/stdc++.h>#include<bits/extc++.h>usingnamespace std;#define _rep(n, a, b) for (ll n = (a); n <= (b); ++n)#define _rev(n, a, b) for (ll n = (a); n >= (b); --n)#define _for(n, a, b) for (ll n = (a); n < (b); ++n)#define _rof(n, a, b) for (ll n = (a); n > (b); --n)#define oo 0x3f3f3f3f3f3f#define ll long long#define db double#define eps 1e-8#define bin(x) cout << bitset<10>(x) << endl;#define what_is(x) cerr << #x << " is " << x << endl#define met(a, b) memset(a, b, sizeof(a))#define all(x) x.begin(), x.end()#define pii pair<ll, ll>#define pdd pair<db, db>const ll maxn =1e5+10;const ll mod =1e9+7;
ll mat[20][20], n, m, k, sum_ln[20];signedmain(){
cin >> n >> m >> k;_rep(i,1, n){_rep(j,1, m){
cin >> mat[i][j];
sum_ln[i]+= mat[i][j];}}
ll res =0;_rep(i,0,(1<< n)-1){
ll cur = i, used_line =__builtin_popcount(cur);if(used_line >k)continue;
ll val =0;
vector<ll>line(20);_for(j,0, n){if((cur>>j)&1){
val += sum_ln[j+1];
line[j+1]=1;
used_line++;}}
vector<ll>a(m+1);_rep(j,1, m){_rep(k,1, n){if(line[k])continue;else a[j]+= mat[k][j];}}sort(a.begin()+1, a.end(), greater<ll>());_rep(i,1,min(m, k - used_line)){
val += a[i];}
res =max(val, res);}
cout << res << endl;}