#include <bits/stdc++.h>
using namespace std;
class ST {
 private:
  int st[1 << 18];
  int size;
  void updateI(int w, int L, int R, int a, int v) {
    if (L > a || a > R) return;
    if (L >= a && a >= R) {
      st[w] = v;
      return;
    }
    updateI(2 * w, L, (L + R) / 2, a, v),
        updateI(2 * w + 1, (L + R) / 2 + 1, R, a, v);
    st[w] = min(st[2 * w], st[2 * w + 1]);
  }
  int queryI(int w, int L, int R, int a, int b) {
    if (L > b || a > R) return INT_MAX;
    if (L >= a && b >= R) return st[w];
    return min(queryI(2 * w, L, (L + R) / 2, a, b),
               queryI(2 * w + 1, (L + R) / 2 + 1, R, a, b));
  }

 public:
  ST(int s = 0) {
    size = s;
    memset(st, 0, sizeof st);
  }
  void update(int a, int v) { updateI(1, 1, size, a, v); }
  int query(int a, int b) { return queryI(1, 1, size, a, b); }
};
struct event {
  int x, y, x2, y2, rect;
  event(int px = 0, int py = 0, int px2 = 0, int py2 = 0, int r = 0) {
    x = px, y = py, x2 = px2, y2 = py2, rect = r;
  }
  bool operator<(const event other) const {
    if (x == other.x) {
      if (y == other.y)
        return (rect < other.rect);
      else
        return (y < other.y);
    } else {
      return (x < other.x);
    }
  }
};
int n, m, k, q;
vector<event> sortX;
vector<event> sortY;
bool ans[200013];
void process(vector<event> &events, int dim) {
  ST st(dim);
  for (event e : events) {
    if (e.rect == 0) {
      st.update(e.y, e.x);
    } else {
      ans[e.rect] |= (st.query(e.y2, e.y) >= e.x2);
    }
  }
}
int main() {
  scanf("%d%d%d%d", &n, &m, &k, &q);
  for (int i = 0; i < k; i++) {
    int x, y;
    scanf("%d%d", &x, &y);
    sortX.push_back(event(x, y));
    sortY.push_back(event(y, x));
  }
  for (int i = 1; i <= q; i++) {
    int x1, y1, x2, y2;
    scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
    sortX.push_back(event(x2, y2, x1, y1, i));
    sortY.push_back(event(y2, x2, y1, x1, i));
  }
  sort(sortX.begin(), sortX.end());
  sort(sortY.begin(), sortY.end());
  process(sortX, m);
  process(sortY, n);
  for (int i = 1; i <= q; i++) {
    if (ans[i]) {
      printf("YES\n");
    } else {
      printf("NO\n");
    }
  }
}
