#include <bits/stdc++.h>
using namespace std;
const long long N = 1000010;
long long n, m, p, cy[4 * N], modif[4 * N], res = -1e18;
vector<vector<long long>> a(N, vector<long long>(2));
void push(long long v, long long tl, long long tr) {
  modif[2 * v] += modif[v];
  modif[2 * v + 1] += modif[v];
  cy[2 * v] += modif[v];
  cy[2 * v + 1] += modif[v];
  modif[v] = 0;
}
void upd(long long v, long long tl, long long tr, long long l, long long r,
         long long d) {
  if (tl > r || tr < l) return;
  if (l <= tl && tr <= r) {
    if (l == r)
      cy[v] = max(cy[v], d);
    else
      cy[v] += d;
    modif[v] += d;
    return;
  }
  push(v, tl, tr);
  long long tmed = tl + tr >> 1;
  upd(2 * v, tl, tmed, l, r, d);
  upd(2 * v + 1, tmed + 1, tr, l, r, d);
  cy[v] = max(cy[2 * v], cy[2 * v + 1]);
}
signed main() {
  ios_base::sync_with_stdio(0);
  cin >> n >> m >> p;
  for (long long i = 0; i < n; ++i) cin >> a[i][0] >> a[i][1];
  sort(a.begin(), a.begin() + n);
  fill(cy, cy + 4 * N, -1e18);
  for (long long i = 0; i < m; ++i) {
    long long j, el;
    cin >> j >> el;
    j--;
    upd(1, 0, N, j, j, -el);
  }
  vector<pair<pair<long long, long long>, long long>> xyz;
  for (long long i = 0; i < p; ++i) {
    long long x, y, z;
    cin >> x >> y >> z;
    xyz.push_back({{x, y}, z});
  }
  sort(xyz.begin(), xyz.end());
  long long l = 0;
  for (long long i = 0; i < n; ++i) {
    while (l < p && xyz[l].first.first < a[i][0]) {
      upd(1, 0, N, xyz[l].first.second, N, xyz[l].second);
      l++;
    }
    res = max(res, cy[1] - a[i][1]);
  }
  cout << res;
}
