// prof. Carmen Popescu - Colegiul National "Gh. Lazar" Sibiu
#include <fstream>
#include <climits>
#include <algorithm>

using namespace std;

int sum[502][502],a[502][502],m,n;
int mn=INT_MAX;

ifstream f("lenes.in");
ofstream g("lenes.out");

int calc(int i,int k1)
{
    int mn=INT_MAX,s=0,j,s1;

    if (i>1 && i<n)
    {
        s=sum[i][m];
        for (j=0; j<=k1; j++)
        {
            s1  = sum[i-1][k1-j];
            s1 += sum[i+1][j];
            s1 += s;
            if (s1<mn) mn=s1;
        }
    }
    else
        if (i==1)
            mn=sum[1][m]+sum[2][k1];
        else
            mn=sum[n][m]+sum[n-1][k1];
    return mn;
}

int main()
{
    int p,k1,k2,i,j,s,s1,s2,k,i1,i2,i3,gg;
    int mn=INT_MAX;
    f>>p;
    f>>m>>n>>k1>>k2;
    for (i=1;i<=m;i++)
        for (j=1;j<=n;j++)
            f>>a[j][i];

    for (j=1;j<=n;j++)
    {
        sort(a[j]+1,a[j]+m+1);
        sum[j][1]=a[j][1];
        for (i=2;i<=m;i++)
            sum[j][i]=a[j][i]+sum[j][i-1];
    }

    if (p==1)
    {
        for (i=1;i<=n;i++)
        {
            s=calc(i,k1);
            if (s<mn) mn = s;
        }
        g<<mn<<'\n';
    }
    else
    {
        // cazul 1: doua coloane consecutive
        for (i=2;i<n-1;i++)
        {
            s = sum[i-1][k1] + sum[i][m] + sum[i+1][m] + sum[i+2][k2];
            if (s<mn) mn=s;

            s = sum[i-1][k2] + sum[i][m] + sum[i+1][m] + sum[i+2][k1];
            if (s<mn) mn=s;
        }


        // cazul 2: 2 coloane cu una intre ele
        for (int tt=1;tt<=2;tt++)
        {
            for (i=2;i<=n-3;i++)
            {

                i1=k1; i2=0; i3=k2;
                s = sum[i][m] + sum[i+2][m];
                do
                {
                    gg=0;
                    if (i1>=1 && i2<=m && a[i+1][i2+1]<a[i-1][i1] && a[i+3][i3]<=a[i-1][i1])
                    {
                        i1--; i2++; gg=1;
                    }
                    else
                        if (i3>=1 && i2<=m && a[i+1][i2+1]<a[i+3][i3] && a[i-1][i1]<=a[i+3][i3])
                        {
                            i3--; i2++; gg=1;
                        }
                }while (gg==1);
                s1 = s + sum[i-1][i1] + sum[i+1][i2] + sum[i+3][i3];
                if (s1<mn) mn=s1;
            }

            // coloanele 1 si 3
            s = sum[1][m] + sum[3][m];

            if (n>3)
            {
                for (j=0;j<=k2;j++)
                    if (k1+j<=m && k2>j)
                    {
                        s1  = sum[2][k1+j];
                        s1 += sum[4][k2-j];
                        s1 += s;
                        if (s1<mn) mn=s1;
                    }
            }
            else
            {
                s=s+sum[2][k1+k2];
                if (s<mn) mn=s;
            }

            // coloanele n-2 si n
            if (n>3)
            {
                s = sum[n-2][m] + sum[n][m];

                for (j=0;j<=k1;j++)
                    if (k2+j<=m && k1>j)
                    {
                        s1  = sum[n-3][k1-j];
                        s1 += sum[n-1][k2+j];
                        s1 += s;
                        if (s1<mn) mn=s1;
                    }
            }
            i1=k1; k1=k2; k2=i1;
        }

        // cazul 3: doua coloane oarecare
        for (i=1; i<=n-3; i++)
        {
            s1 = calc(i,k1);
            s2 = calc(i,k2);
            for (i1=i+3;i1<=n;i1++)
            {
                s = s1 + calc(i1,k2);
                if (s<mn) mn=s;

                s = s2 + calc(i1,k1);
                if (s<mn) mn=s;
            }

        }
        g<<mn<<'\n';
    }
}
