import std.stdio;
import std.array;
import std.conv;
import std.string;
import std.typecons;

alias Tuple!(int,"x",int,"y") pair;

void main(){
  int n,w,h,s,t;
  string[] input;
  while(n=readln.split[0].to!int,n!=0){
    int[pair] memo;
    input=readln.split;
    w=input[0].to!int;
    h=input[1].to!int;
    for(int i=0;i<n;i++){
      input=readln.split;
      pair p;
      p.x=input[0].to!int-1;
      p.y=input[1].to!int-1;
      memo[p]=1;
    }
    input=readln.split;
    s=input[0].to!int;
    t=input[1].to!int;
    int count,maxCount=0;
    foreach(j;0..h-t+1){
      foreach(i;0..w-s+1){
	count=0;
	foreach(l;j..t+j){
	  foreach(k;i..s+i){
	    pair p;p.x=k;p.y=l;
	    if(p in memo){
	      count++;
	    }
	  }
	}
	if(maxCount<count){
	  maxCount=count;
	}
      }
    }
    writeln(maxCount);
  }
}