#include <bits/stdc++.h>
using namespace std;
struct node {
  int l;
  int r;
} a[200005], b[2000005];
int cmpl(struct node n, struct node m) { return n.l < m.l; }
int cmpr(struct node n, struct node m) { return n.r < m.r; }
int main() {
  int n, m;
  while (~scanf("%d", &n)) {
    int sum = 0;
    for (int i = 0; i < n; i++) {
      scanf("%d%d", &a[i].l, &a[i].r);
    }
    scanf("%d", &m);
    for (int i = 0; i < m; i++) {
      scanf("%d%d", &b[i].l, &b[i].r);
    }
    sort(a, a + n, cmpl);
    sort(b, b + m, cmpr);
    if (a[n - 1].l > b[0].r) {
      sum = max(sum, a[n - 1].l - b[0].r);
    }
    sort(a, a + n, cmpr);
    sort(b, b + m, cmpl);
    if (b[m - 1].l > a[0].r) {
      sum = max(sum, b[m - 1].l - a[0].r);
    }
    if (!sum)
      printf("0\n");
    else
      printf("%d\n", sum);
  }
  return 0;
}
