#include<bits/stdc++.h>
using namespace std;
using Int = long long;
vector<vector<Int> > a;
vector<vector<Int> > s;
inline Int rect(Int sy,Int sx,Int ty,Int tx){
  //cout<<sy<<" "<<sx<<":"<<ty<<" "<<tx<<endl;
  return s[ty][tx]+s[sy][sx]-(s[sy][tx]+s[ty][sx]);
}
Int dfs(Int sy,Int sx,Int ty,Int tx,Int k){
  if(k==0) return rect(sy,sx,ty,tx);
  Int res=0;
  if(k==1){
    {
      Int l=sy,r=ty;
      while(l+1<r){
	Int m=(l+r)>>1;
	if(rect(sy,sx, m,tx)<=rect( m,sx,ty,tx)) l=m;
	else r=m;
      }
      res=max(res,min(rect(sy,sx, l,tx),
		      rect( l,sx,ty,tx)));
      res=max(res,min(rect(sy,sx, r,tx),
		      rect( r,sx,ty,tx)));
    }
    {
      Int l=sx,r=tx;
      while(l+1<r){
	Int m=(l+r)>>1;
	if(rect(sy,sx,ty, m)<=rect(sy, m,ty,tx)) l=m;
	else r=m;
      }
      res=max(res,min(rect(sy,sx,ty, l),
		      rect(sy, l,ty,tx)));
      res=max(res,min(rect(sy,sx,ty, r),
		      rect(sy, r,ty,tx)));
    }
    return res;
  }
  for(Int i=sy;i<ty;i++){
    for(Int j=0;j<k;j++)
    res=max(res,min(dfs(sy,sx, i,tx,     j),
		    dfs( i,sx,ty,tx,k-(j+1))));
  }
  for(Int i=sx;i<tx;i++){
    for(Int j=0;j<k;j++)
      res=max(res,min(dfs(sy,sx,ty, i,     j),
		      dfs(sy, i,ty,tx,k-(j+1))));
  }
  return res;
}
signed main(){
  Int h,w,n;
  cin>>h>>w>>n;
  a.resize(h,vector<Int>(w));
  s.resize(h+1,vector<Int>(w+1,0));
  for(Int i=0;i<h;i++)
    for(Int j=0;j<w;j++)
      cin>>a[i][j];


  for(Int i=0;i<h;i++)
    for(Int j=0;j<w;j++)
      s[i+1][j+1]=s[i+1][j]+a[i][j];

  for(Int j=0;j<=w;j++)
    for(Int i=0;i<h;i++)
      s[i+1][j]+=s[i][j];

  if(0){
    for(Int i=0;i<=h;i++){
      for(Int j=0;j<=w;j++){
	printf("%lld ",s[i][j]);
      }
      cout<<endl;
    }
  }

  Int ans=dfs(0,0,h,w,n-1);
  if(n==4){
    for(int y1=0;y1<=h;y1++){
      for(int y2=y1;y2<=h;y2++){
	for(int x1=0;x1<=w;x1++){
	  for(int x2=x1;x2<=w;x2++){
	    ans=max(ans,
		    min({ rect( 0, 0,y2,x1),
			  rect(y2, 0, h,x2),
			  rect(y1,x2, h, w),
			  rect(0 ,x1,y1, w)}));
	    
	    ans=max(ans,
		    min({ rect( 0, 0,y1,x2),
			  rect(y1, 0, h,x1),
			  rect(y2,x1, h, w),
			  rect( 0,x2,y2, w)}));
	  }
	}
      }
    }
  }
  
  cout<<ans<<endl;
  
  return 0;
}