#include"stdio.h"
int main(void)
{
int width, heigth;
//区域的宽和高
int n;
//柿子树的个数
int specwidth, specheigth;
//指定区域的宽和高
int area[200][200] = {0};
//用于计算的存储区域
int coordinatex, coordinatey;
int i, j, x, y;
int k, l;
int curnum, maxnum;
while (scanf("%d", &n))
{
if (n == 0)
break;
maxnum = 0;
//矩阵清零
for (k = 0; k < 200; k++)
{
for (l = 0; l < 200; l++)
{
area[k][l] = 0;
}
}
scanf("%d %d", &width, &heigth);
//初始化矩阵数据
while (n-- > 0)
{
scanf("%d %d", &coordinatex, &coordinatey);
area[coordinatey][coordinatex] = 1;
}
scanf("%d %d", &specwidth, &specheigth);
//枚举每种情况
for (j = 0; j + specheigth - 1 < heigth; j++)
{
for (i = 0; i + specwidth - 1 < width; i++)
{
curnum = 0;
for (x = 0; x < specheigth; x++)
{
for (y = 0; y < specwidth; y++)
{
if (area[j + x +1][i + y +1] == 1)
{
++curnum;
}
}
}
if (curnum > maxnum)
{
maxnum = curnum;
}
curnum = 0;
}
}
printf("%d\n", maxnum);
}
return 0;
}