loop do
    n = gets.to_i
    break if n == 0
    w, h = gets.split.map(&:to_i)
    f = Array.new(h+1).map{Array.new(w+1, 0)}
    n.times do
        p = gets.split.map(&:to_i)
        f[p[1]][p[0]] = 1
    end
    s, t = gets.split.map(&:to_i)
    (h+1).times do |i|
        (w+1).times do |j|
            f[i][j] += f[i][j-1] if j > 0
        end
    end
    (w+1).times do |i|
        (h+1).times do |j|
            f[j][i] += f[j-1][i] if j > 0
        end
    end
    max = 0
    for i in 1..(h - t + 1)
        for j in 1..(w - s + 1)
            max = [max, f[i + t - 1][j + s - 1] + f[i - 1][j - 1] - f[i + t - 1][j - 1] - f[i - 1][j + s - 1]].max
        end
    end
    puts max
end