#include <bits/stdc++.h>
#define int long long
#define ll long long
#define R register
#define F(i,a,b) for(int i = (a);i<=(b);i++)
using namespace std;
inline int read(){R int x=0,t=1;R char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') t=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}return x*t;}
int n,m,a[2001][2001],ans[2001][2001],k,H[2001],L[2001];
vector<int>g;
bool cmp(int x,int y)
{
return x>y;
}
inline void solve()
{
n=read(),m=read(),k=read();
for(int i = 1;i<=n;i++)
{
F(j,1,m)
{
a[i][j]=read();
}
}
for(int i = 1;i<=n;i++)
{
for(int j = 1;j<=m;j++) H[i]+=a[i][j],L[j]+=a[i][j];
}
for(int i = 1;i<=n;i++)
{
F(j,1,m)
{
ans[i][j]=-H[i]-L[j];
g.push_back(-ans[i][j]);
}
}
sort(g.begin(),g.end());
if(g[k-1]%(n+m-1)==0) cout << max(g[k-1]/(n+m-1),0ll);
cout << max(g[k-1]/(n+m-1)+1,0ll);
}
signed main()
{
solve();
return 0;
}