#include <stdio.h>

int map[101][101];

int max(int H, int W, int S, int T){
    int x,y,i,j;
    int sum,max=0;
    for(y=1;y+T-1<=H;y++){
        for(x=1;x+S-1<=W;x++){
            sum=0;
            for(i=0;i<T;i++){
                for(j=0;j<S;j++){
                    if(map[x+j][y+i]) sum++;
                }
            }
            if(sum>max)max=sum;
        }
    }
    return max;
}

int main(void){
    int N,i,j;
    while(scanf("%d",&N),N){
        int H,W;
        scanf("%d %d",&W,&H);
        int x,y;
        for(y=1;y<=H;y++){
            for(x=1;x<=W;x++){
                map[x][y]=0;
            }
        }
        for(i=0;i<N;i++){
            scanf("%d %d", &x,&y);
            map[x][y]=1;
        }
        int S,T;
        scanf("%d %d", &S,&T);
        printf("%d\n",max(H,W,S,T));
    }
    return 0;
}