/*
TASK:tre
LANG:C++
*/
#include <iostream>
#define MAXL 10002
#define MAXD 102
#define MIN -1000000000..
using namespace std;
int N, K, L, D;
int mx = -10000000;
int data[MAXD][MAXL];
void ReadData()
{
    int d;
    cin >> N >> K >> L >> D;
    for (int i = 1; i <= D; i++)
    {
        for (int j = 1; j <= L; j++)
        {
            cin >> d;
            data[i][j] = data[i-1][j] + d;
        }
    }
}
void Debug()
{    
    for (int i = 1; i <= D; i++)
    {
        for (int j = 1; j <= L; j++)
        {
            cout << data[i][j] << " ";
        }
        cout << endl;
    }
}
void cm (int i)
{
    if (i > mx) mx = i;
}
void rec(int l, int t, int dta)
{
    if (l > L) return;
    cm(dta);
    for (int i = 0; i <= D; i++)
    {
        rec(l + 1, t + 1, dta + data[i][l]);
    }
}
int main()
{
    ReadData();
    //Debug();
    rec (1, 0, 0);
    cout << mx << endl;
    //system("pause");
    return 0;
}
