/*
#include <stdio.h>
int main()
{
int n, i, j, arr[50][50]={0}, k=1;
scanf("%d", &n);
i=0;
j=n/2;
for(k=1; k<=n*n; k++)
{
arr[i][j]=k;
if(k%n==0)
{
if(i==n-1)
{
i=0;
}
else
{
i++;
}
}
else
{
if(i==0)
{
i=n-1;
}
else
{
i--;
}
if(j==n-1)
{
j=0;
}
else
{
j++;
}
}
}
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
printf("%d ",arr[i][j]);
}
printf("\n");
}
}
*/
/*
#include <stdio.h>
int main()
{
int n, i, j, arr[100][100]= {0}, k=1, sum=0;
scanf("%d",&n);
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
arr[i][j]=k++;
}
}
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
if(i==0||j==0||i==n-1||j==n-1)
{
sum=sum+arr[i][j];
}
}
}
printf("%d",sum);
}
*/
/*
#include <stdio.h>
int main()
{
int i, j, arr[27][27]={}, k, arr1[27][27]={};
for(i=1; i<=25; i++)
{
for(j=1; j<=25; j++)
{
scanf("%d",&arr[i][j]);
}
}
for(i=1; i<=25; i++)
{
for(j=1; j<=25; j++)
{
k=arr[i-1][j]+arr[i+1][j]
+arr[i-1][j+1]+arr[i][j+1]+arr[i+1][j+1]
+arr[i-1][j-1]+arr[i][j-1]+arr[i+1][j-1];
if(arr[i][j]==0)
{
if(k==3)
{
arr1[i][j]=1;
}
else
{
arr1[i][j]=0;
}
}
else if(arr[i][j]==1)
{
if(k==2||k==3)
{
arr1[i][j]=1;
}
else
{
arr1[i][j]=0;
}
}
}
}
for(i=1; i<=25; i++)
{
for(j=1; j<=25; j++)
{
printf("%d ",arr1[i][j]);
}
printf("\n");
}
}
*/
#include <stdio.h>
int main()
{
int i, j, arr[101][101]={}, k, sum=0, m, n, x, y, max=0;
int ii,jj;
scanf("%d",&m);
scanf("%d",&n);
scanf("%d",&y);
scanf("%d",&x);
for(i=1; i<=n; i++)
{
for(j=1; j<=m; j++)
{
scanf("%d",&arr[i][j]);
}
}
for(i=1; i<=n+1-x; i++)
{
for(j=1; j<=m+1-y; j++)
{
sum=0;
for(ii=i; ii<i+x; ii++)
{
for(jj=j; jj<j+y; jj++)
{
sum=sum+arr[ii][jj];
}
}
if(max<sum)
{
max=sum;
}
}
}
printf("%d",max);
}