#include <bits/stdc++.h>
using namespace std;
vector<pair<long long int, long long int> > v1, v2;
int main() {
  long long int p, q, l, r, w, x, y, z, i, j, flag, tot = 0, k;
  scanf("%lld", &p);
  scanf("%lld", &q);
  scanf("%lld", &l);
  scanf("%lld", &r);
  for (i = 0; i < p; i++) {
    scanf("%lld", &x);
    scanf("%lld", &y);
    v1.push_back(make_pair(x, y));
  }
  for (i = 0; i < q; i++) {
    scanf("%lld", &x);
    scanf("%lld", &y);
    v2.push_back(make_pair(x, y));
  }
  for (i = l; i <= r; i++) {
    flag = 0;
    for (j = 0; j < v1.size(); j++) {
      for (k = 0; k < v2.size(); k++) {
        if (v1[j].second < v2[k].first + i || v1[j].first > v2[k].second + i)
          ;
        else
          flag = 1;
      }
    }
    if (flag == 1) tot++;
  }
  cout << tot << endl;
  return 0;
}
