#include <bits/stdc++.h>
using namespace std;
const int limit = 1e6;
int tree[4 * limit], lazy[4 * limit];
void do_lazy(int i, int val, int l, int r) {
  if (l != r)
    lazy[i] += val;
  else
    tree[i] += val;
}
void check_lazy(int i, int l, int r) {
  if (l != r) {
    lazy[i * 2 + 1] += lazy[i];
    lazy[i * 2 + 2] += lazy[i];
  }
  tree[i] += lazy[i];
  lazy[i] = 0;
}
void update(int l, int r, int val, int i, int p, int q) {
  if (l > r || p > q || l > q || r < p) return;
  if (p >= l && q <= r)
    do_lazy(i, val, p, q);
  else {
    int mid = (p + q) / 2;
    update(l, r, val, i * 2 + 1, p, mid);
    update(l, r, val, i * 2 + 2, mid + 1, q);
    int left = tree[i * 2 + 1] + lazy[i * 2 + 1];
    int right = tree[i * 2 + 2] + lazy[i * 2 + 2];
    tree[i] = max(left, right);
  }
}
int query(int l, int r, int i, int p, int q) {
  if (l > r || p > q || l > q || r < p) return -2e9;
  check_lazy(i, p, q);
  if (p >= l && q <= r) return tree[i];
  int mid = (p + q) / 2;
  int left = query(l, r, i, p, mid);
  int right = query(l, r, i, mid + 1, q);
  return max(left, right);
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int n, m, pp;
  cin >> n >> m >> pp;
  pair<int, int> a[n];
  for (int i = 0; i < n; ++i) cin >> a[i].first >> a[i].second;
  sort(a, a + n);
  pair<int, int> b[m];
  vector<int> bb(m);
  for (int i = 0; i < m; ++i) cin >> b[i].first >> b[i].second;
  sort(b, b + m);
  for (int i = 0; i < m; ++i) bb[i] = b[i].first;
  for (int i = 0; i < m; ++i) update(i, i, -b[i].second, 0, 0, m - 1);
  pair<int, pair<int, int>> arr[pp + 1];
  for (int i = 0; i < pp; ++i)
    cin >> arr[i].first >> arr[i].second.first >> arr[i].second.second;
  sort(arr, arr + pp);
  int ans = -2e9, last = 0;
  for (int i = 0; i < n; ++i) {
    while (last < pp && arr[last].first < a[i].first) {
      int j = upper_bound(bb.begin(), bb.end(), arr[last].second.first) -
              bb.begin();
      update(j, m - 1, arr[last].second.second, 0, 0, m - 1);
      ++last;
    }
    ans = max(ans, query(0, m - 1, 0, 0, m - 1) - a[i].second);
  }
  cout << ans << "\n";
  return 0;
}
