#include <iostream>
#include <sstream>
#include <string>
#include <algorithm>
#include <vector>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <cassert>

using namespace std;

#define FOR(i,k,n) for(int i=(k); i<(int)(n); ++i)
#define REP(i,n) FOR(i,0,n)
#define FORIT(i,c) for(__typeof((c).begin())i=(c).begin();i!=(c).end();++i)

template<class T> void debug(T begin, T end){ for(T i = begin; i != end; ++i) cerr<<*i<<" "; cerr<<endl; }
inline bool valid(int x, int y, int W, int H){ return (x >= 0 && y >= 0 && x < W && y < H); }

typedef long long ll;
const int INF = 100000000;
const double EPS = 1e-8;
const int MOD = 1000000007;
int dx[8] = {1, 0, -1, 0, 1, -1, -1, 1};
int dy[8] = {0, 1, 0, -1, 1, 1, -1, -1};
int N, M, W, H;
double S;
bool under(double x, double y, double l, double r){
  double crs = (double)W * (y - l) - (r - l) * x;
  return crs < 0;
}

int main(){
  while(cin >> N >> M >> W >> H >> S && N){
    double l[30000], r[30000];
    REP(i, M) cin >> l[i] >> r[i];
    double cx[30000], cy[30000];
    REP(i, N) cin >> cx[i] >> cy[i];
    int choco[30000] = {};
    REP(i, N){
      int lb = -1, ub = M - 1;
      while(ub - lb > 1){
        int m = (ub + lb) / 2;
        if(under(cx[i], cy[i], l[m], r[m])){
          ub = m;
        }else{
          lb = m;
        }
      }
      choco[ub]++;
    }
    double area[30000];
    REP(i, M){
      double l1 = i - 1 >= 0 ? l[i - 1] : 0;
      double r1 = i - 1 >= 0 ? r[i - 1] : 0;
      double l2 = l[i], r2 = r[i];
      double L = l2 - l1, R = r2 - r1;
      area[i] = (L + R) / 2.0 * W;
    }
    int accumC[30001] = {};
    double accumS[30001] = {};
    REP(i, M) accumS[i + 1] = accumS[i] + area[i];
    REP(i, M) accumC[i + 1] = accumC[i] + choco[i];
    //debug(accumS, accumS + M + 1);
    //debug(accumC, accumC + M + 1);
    int ans = N;
    int e = 0;
    for(int b = 0; b < M; b++){
      while(e < M && accumS[e + 1] - accumS[b] < (double) W * H - S + EPS) e ++;
      ans = min(ans, N - (accumC[e] - accumC[b]));
    }
    cout << ans << endl;
  }
  return 0;
}