#include <bits/stdc++.h>
using namespace std;
struct event {
  int type, x, y, y1, y2, start, id;
  event(int a, int b) {
    type = 1;
    x = a;
    y = b;
  }
  event(int a, int b, int c, int d, int e) {
    type = 2;
    start = a;
    x = c;
    y1 = b;
    y2 = d;
    id = e;
  }
  void rev() {
    if (type == 1) {
      swap(x, y);
    } else {
      swap(start, y1);
      swap(x, y2);
    }
  }
};
const int N = int(2e5 + 5);
vector<event> events;
bool ok[N];
int t[4 * N], sz, n, m;
bool operator<(event a, event b) {
  if (a.x == b.x) return a.type < b.type;
  return a.x < b.x;
}
void upd(int pos, int val) {
  pos += sz - 1;
  t[pos] = val;
  while (pos) {
    pos /= 2;
    t[pos] = min(t[pos * 2], t[pos * 2 + 1]);
  }
}
void build() {
  sz = 1;
  while (sz < m) {
    sz <<= 1;
  }
  for (int i = sz; i < sz + m; i++) {
    t[i] = 0;
  }
  for (int i = sz + m; i < 2 * sz; i++) {
    t[i] = int(1e9);
  }
  for (int i = sz - 1; i > 0; i--) {
    t[i] = min(t[i * 2], t[i * 2 + 1]);
  }
}
int min_(int l, int r, int L = 1, int R = sz + 1, int v = 1) {
  if (r <= L || R <= l) return int(1e9);
  if (l <= L && R <= r) return t[v];
  int mid = (L + R) / 2;
  return min(min_(l, r, L, mid, v * 2), min_(l, r, mid, R, v * 2 + 1));
}
int main() {
  int k, q;
  scanf("%d%d%d%d", &n, &m, &k, &q);
  build();
  for (int i = 0; i < k; i++) {
    int x, y;
    scanf("%d%d", &x, &y);
    events.push_back(event(x, y));
  }
  for (int i = 0; i < q; i++) {
    int x1, x2, y1, y2;
    scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
    events.push_back(event(x1, y1, x2, y2, i));
  }
  sort(events.begin(), events.end());
  for (int i = 0; i < 2; i++) {
    for (event e : events) {
      if (e.type == 1) {
        upd(e.y, e.x);
      } else {
        if (min_(e.y1, e.y2 + 1) >= e.start) {
          ok[e.id] = 1;
        }
      }
    }
    for (int j = 0; j < (int)(events).size(); j++) {
      events[j].rev();
    }
    swap(n, m);
    build();
    sort(events.begin(), events.end());
  }
  for (int i = 0; i < q; i++) {
    puts(ok[i] ? "YES" : "NO");
  }
  return 0;
}
