/*
TASK:TRE
LANG:C++
*/
#include <iostream>
using namespace std;
int a[103][10003];
int n,k,l,d;
int m = 0;
int r = 0;
void dfs(int x, int y, int len)
{
  r+=a[x][y];
  if(len<k-1)
  {
    if(y<l-1)
    {

      dfs(x,y+1,len+1);
      r-=a[x][y+1];
    }
    if(x<d-1)
    {
      dfs(x+1,y,len+1);
      r-=a[x+1][y];
    }
   /* if(x>0)
    {
      dfs(x-1,y,len+1);
      r-=a[x-1][y];
    }
    if(y>0)
    {
      dfs(x,y-1,len+1);
      r-=a[x][y-1];
    }*/
  }
  else
  {
    if(r>m)
      m=r;
  }
}
int main()
{
  cin>>n>>k>>l>>d;
  for(int i=0; i<d; i++)
    for(int j=0; j<l; j++)
      cin>>a[i][j];
 /* for(int i=0; i<l; i++)
  {   /**/
    r=0;
    dfs(0,0,0);
/*  }   /**/
  cout<<m<<endl;
  return 0;
}
