#include <stdio.h>
#include <string.h>

int main(void)
{
	int N;
	int W, H;
	int x, y;
	int S, T;
	int field[101][101];
	int i, j;
	int max, cnt;
	
	while (1){
		scanf("%d", &N);
		if (N == 0){
			break;
		}
		
		scanf("%d%d", &W, &H);
		
		memset(field, 0, sizeof(field));
		for (i = 0; i < N; i++){
			scanf("%d%d", &x, &y);
			field[y][x]++;
		}

		scanf("%d%d", &S, &T);

		for (y = 1; y <= H; y++){
			for (x = 1; x <= W; x++){
				field[y][x] += field[y][x - 1];
//printf("[%d]", field[y][x]);
			}
//printf("\n");
		}
		
		max = 0;
		for (y = 1; y <= H - T + 1; y++){
			for (x = 1; x <= W - S + 1; x++){
				cnt = 0;
				for (i = y; i <= y + T - 1; i++){
					cnt += (field[i][x + S - 1] - field[i][x - 1]);
				}
				if (max < cnt){
					max = cnt;
				}
//printf("<%d, %d=%d>", x, y, cnt);
			}
		}
		
		printf("%d\n", max);
	}
	return (0);
}