#include <string.h>

int w,h,s,t,max;
int map[101][101];

void solve(int si,int sj){
  int i,j,count=0;

  for(i=si;i<si+t;i++){
    for(j=sj;j<sj+s;j++){
      if(map[i][j]==1){count++;}
    }
  }
  if(max<count){max=count;}
}

int main(void){
  int i,j,n,x,y;
  while(1){
    scanf("%d",&n);
    if(!n) break;

    max = 0;
    memset(map,0,sizeof(map));
    scanf("%d%d",&w,&h);
    while(n--){
      scanf("%d%d",&x,&y);
      map[y-1][x-1]=1;
    }
    scanf("%d%d",&s,&t);

    for(i=0;i<=h-t;i++){
      for(j=0;j<=w-s;j++){
        solve(i,j);
      }
    }
    printf("%d\n",max);
  }

  return 0;
}