#include <bits/stdc++.h>
using namespace std;
struct test {
  long long a, b;
};
long long gcd(long long a, long long b) {
  if (b == 0) {
    return a;
  }
  return gcd(b, a % b);
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long p, q, l, r, c = 0;
  cin >> p >> q >> l >> r;
  test p1[p], q1[q];
  for (long long i = 0; i < p; i++) {
    cin >> p1[i].a >> p1[i].b;
  }
  for (long long i = 0; i < q; i++) {
    cin >> q1[i].a >> q1[i].b;
  }
  for (long long i = l; i <= r; i++) {
    for (long long j = 0; j < q; j++) {
      for (long long k = 0; k < p; k++) {
        if (((q1[j].a + i >= p1[k].a) && (q1[j].a + i <= p1[k].b)) ||
            ((q1[j].b + i >= p1[k].a) && (q1[j].b + i <= p1[k].b)) ||
            (q1[j].a + i <= p1[k].a && q1[j].b + i >= p1[k].b)) {
          c++;
          goto sos;
        }
      }
    }
  sos:;
  }
  cout << c;
}
