#include <stdio.h>
#define MAX(a,b) ((a) > (b) ? (a) : (b));

int countTree(int a,int b,int c,int d,int e[][]);

int main(){
	int N;
	int i,j;
	while(1){
		int maxNumber=0;
		scanf("%d",&N); if(N==0) break;
		scanf("%d%d",&W,&H);
		int map[H][W]={};
		int x,y;
		for(i=0;i<N;i++){
			scanf("%d%d",&x,&y);
			map[x][y]=1;
		}
		scanf("%d%d",&S,&T);
		for(i=0;i<H-T+1;i++){
			for(j=0;j<W-S+1;j++) maxNumber=MAX(maxNumber,countTree(i,j,S,T,map));
		}
		printf("%d\n",maxNumber);
	}
}

int countTree(int a,int b,int c,int d,int e[][]){
	int k,l;
	int countSum=0;
	for(k=0;k<a+c;i++){
		for(l=0;l<b+d;l++){
			if(e[k][l]==1) countSum++;
		}
	}
	return countSum;
}