#include <bits/stdc++.h>
using namespace std;
int main() {
  int p, q, l, r;
  scanf("%d%d%d%d", &p, &q, &l, &r);
  int mark[1111];
  memset(mark, 0, sizeof(mark));
  int a, b;
  for (int i = 0; i < p; i++) {
    scanf("%d%d", &a, &b);
    for (int j = a; j <= b; j++) mark[j] = 1;
  }
  int c[55], d[55];
  for (int i = 0; i < q; i++) {
    scanf("%d%d", &c[i], &d[i]);
  }
  int ans = 0;
  for (int i = l; i <= r; i++) {
    for (int j = 0; j < q; j++) {
      int flag = 0;
      for (int k = c[j] + i; k <= d[j] + i; k++) {
        if (k <= 1000 && mark[k]) {
          ans++;
          flag = 1;
          break;
        }
      }
      if (flag) break;
    }
  }
  printf("%d\n", ans);
  return 0;
}
