#include<stdio.h>

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

int move(int ii,int jj)
{
  int i,j,count=0;
  for(i=ii;i<T+ii;i++){
    for(j=jj;j<S+jj;j++){
      if(map[i][j]==1)count++;
    }
  }
  return count;
}