/*
TASK:tre
LANG:C++
*/
#include <iostream>
using namespace std;

int main()
{
    int a[10001][100]={0};
    int b[10001][2]={0};
    int c[10001][2]={0};
    int n, k, l, d, br=0, i;
    cin >> n >> k >> l >> d;
    for(i=0; i<l; i++)
      for(int j=0; j<d; j++)
      {
         cin >> a[i][j];
        if(a[i][j]>0)
        {
          b[br][1]=i;
          b[br][0]=j;
          br++;
        }
      }
      
 /*   for(i=0; i<l; i++)
      {         
      for(int j=0; j<d; j++)
         cout << a[i][j] << " ";
      cout << endl;
      }  
     
    for(i=0; i<br; i++)
    {
        cout << b[i][0] << " " << b[i][1] << endl;
        }  */
      
    int br2=0;
    for(i=0; i<br; i++)
    {
       for(int j=0; j<=b[i][1]; j++)
       {
          br2+=a[j][b[i][0]];
          if(br2>c[i][0])
          {
             c[i][0]=br2;
             c[i][1]=j+1;
          }
       }
       br2=0; 
    }
    

    int x;
    for(i=0; i<br-1; i++)
     for(int j=i+1; j<br; j++)
     {
        if(c[i][0]<c[j][0])
        {
           x=c[i][0];c[i][0]=c[j][0];c[j][0]=x;
           x=c[i][1];c[i][1]=c[j][1];c[j][1]=x;
        }
        if((c[i][0]==c[j][0])&&(c[i][1]>c[j][1]))
        {
           x=c[i][0];c[i][0]=c[j][0];c[j][0]=x;
           x=c[i][1];c[i][1]=c[j][1];c[j][1]=x;
        } 
     }
     
    int br3=0; 
    int res=0;
    i=0;        
    while(br3<=k)
    {
      br3+=c[i][1];
      res+=c[i][0];
      i++;
    }
    
    res-=c[i-1][0];
    cout << res << endl;
    return 0;
}                    

