#include <bits/stdc++.h>
using namespace std;
const int MAXN = 200005;
long long dat[MAXN];
int lc[MAXN * 4], rc[MAXN * 4], top = 0, root = 0;
long long min_val[MAXN * 4], tag[MAXN * 4];
void init() {
  top = 0, memset(min_val, 0, sizeof min_val), memset(tag, 0, sizeof tag);
}
void pdw(int nd) {
  if (lc[nd]) tag[lc[nd]] += tag[nd], tag[rc[nd]] += tag[nd];
  min_val[nd] += tag[nd], tag[nd] = 0;
}
void update(int nd) { min_val[nd] = min(min_val[lc[nd]], min_val[rc[nd]]); }
void build(int &nd, int opl, int opr) {
  nd = ++top;
  if (opl == opr)
    min_val[nd] = dat[opl];
  else {
    int mid = (opl + opr) >> 1;
    build(lc[nd], opl, mid), build(rc[nd], mid + 1, opr);
    update(nd);
  }
}
void modify(int nd, int opl, int opr, int dt, int L, int R) {
  if (opl > opr) return;
  pdw(nd);
  if (opl == L && opr == R)
    tag[nd] += dt;
  else {
    int mid = (L + R) >> 1;
    if (opr <= mid)
      modify(lc[nd], opl, opr, dt, L, mid);
    else if (opl > mid)
      modify(rc[nd], opl, opr, dt, mid + 1, R);
    else
      modify(lc[nd], opl, mid, dt, L, mid),
          modify(rc[nd], mid + 1, opr, dt, mid + 1, R);
    pdw(lc[nd]), pdw(rc[nd]), update(nd);
  }
}
inline long long query() { return pdw(root), min_val[root]; }
int A[MAXN], B[MAXN];
vector<pair<int, int> > vec[MAXN];
int n, m, q;
long long cutall = 0;
int main() {
  scanf("%d%d%d", &n, &m, &q);
  init();
  for (int i = 1; i < n; i++) scanf("%d%d", &A[i], &B[i]), dat[i] = B[i];
  build(root, 1, n);
  for (int i = 1; i <= m; i++) {
    int u, v, d;
    scanf("%d%d%d", &u, &v, &d);
    cutall += d;
    vec[u].push_back(make_pair(v, d));
  }
  for (int i = 1; i <= n; i++) {
    for (register int j = 0; j < vec[i].size(); j++) {
      modify(root, 1, vec[i][j].first - 1, vec[i][j].second, 1, n);
      modify(root, n, n, vec[i][j].second, 1, n);
    }
    dat[i] = query() + A[i];
  }
  init();
  build(root, 1, n);
  printf("%lld\n", query());
  for (int i = 1; i <= q; i++) {
    int u, v;
    scanf("%d%d", &u, &v);
    modify(root, u, u, v - A[u], 1, n), A[u] = v;
    printf("%lld\n", query());
  }
  return 0;
}
