#include <bits/stdc++.h>
using namespace std;
bool isValid(int cx, int cy, int ax, int ay) {
  if (cy < ax)
    return (false);
  else if (ay < cx)
    return (false);
  else
    return (true);
}
void inp() {
  int P, Q, L, R, X, Y, co = 0;
  cin >> P >> Q >> L >> R;
  vector<pair<int, int> > valA, valB;
  for (int i = 0; i < P; i++) {
    cin >> X >> Y;
    valA.push_back({X, Y});
  }
  for (int i = 0; i < Q; i++) {
    cin >> X >> Y;
    valB.push_back({X, Y});
  }
  for (int i = L; i < R + 1; i++) {
    for (int j = 0; j < Q; j++) {
      bool flag = false;
      int x = valB[j].first + i, y = valB[j].second + i;
      for (int k = 0; k < P; k++) {
        if (isValid(x, y, valA[k].first, valA[k].second)) {
          flag = true;
          co++;
          break;
        }
      }
      if (flag) break;
    }
  }
  cout << co << "\n";
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  inp();
  return 0;
}
