#include <bits/stdc++.h>
using namespace std;
const double PI = acos(-1);
const long long mod = 1e9 + 7;
const long long N = 200000 + 5, K = 105;
const int si = (1 << 20);
const long long M = 100 + 5;
const double INFdb = 1e10;
int n, m, p;
vector<pair<int, int>> a, b;
vector<pair<int, pair<int, int>>> c;
long long seg[N * 4], lazy[N * 4];
long long ans = LLONG_MIN;
void build(int id, int l, int r) {
  seg[id] -= b[l].second;
  if (l + 1 == r) return;
  int mid = (l + r) >> 1;
  build(id << 1, l, mid);
  build(id << 1 | 1, mid, r);
}
void add(int beg, int fin, int val, int l, int r, int id) {
  if (beg == l && fin == r) {
    seg[id] += val;
    lazy[id] += val;
    return;
  }
  int mid = (l + r) >> 1;
  if (beg < mid) add(beg, min(mid, fin), val, l, mid, id << 1);
  if (fin > mid) add(max(beg, mid), fin, val, mid, r, id << 1 | 1);
  seg[id] = max(seg[id << 1], seg[id << 1 | 1]) + lazy[id];
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(0);
  cin >> n >> m >> p;
  a.resize(n);
  for (pair<int, int>& x : a) cin >> x.first >> x.second;
  sort((a).begin(), (a).end());
  b.resize(m);
  for (pair<int, int>& x : b) cin >> x.first >> x.second;
  sort((b).begin(), (b).end());
  for (int i = (int)a.size() - 1; i; --i) {
    a[i - 1].second = min(a[i - 1].second, a[i].second);
  }
  for (int i = (int)b.size() - 1; i; --i) {
    b[i - 1].second = min(b[i - 1].second, b[i].second);
  }
  build(1, 0, (int)b.size());
  c.resize(p);
  for (pair<int, pair<int, int>>& x : c) {
    cin >> x.first >> x.second.first >> x.second.second;
  }
  sort((c).begin(), (c).end());
  int now = 0;
  for (pair<int, int>& x : a) {
    while (now < (int)c.size() && c[now].first < x.first) {
      auto findd = lower_bound((b).begin(), (b).end(),
                               make_pair(c[now].second.first + 1, 0));
      if (findd != b.end()) {
        add(findd - b.begin(), (int)b.size(), c[now].second.second, 0,
            (int)b.size(), 1);
      }
      ++now;
    }
    ans = max(ans, -x.second + seg[1]);
  }
  cout << ans;
  cerr << "\nTime elapsed: " << 1000 * clock() / CLOCKS_PER_SEC << "ms\n";
  return 0;
}
