#include <bits/stdc++.h>
using namespace std;
struct quji {
  int l, r, mid;
  long long mn, laz;
} c[200102 << 2];
int n, m, Q, a[200102][3], va[200102][2];
long long b[200102];
vector<int> v[200102];
multiset<long long> s;
inline void rd(int &x) {
  x = 0;
  register char c = getchar();
  while (c < '0' || c > '9') c = getchar();
  while (c >= '0' && c <= '9') {
    x = (x << 3) + (x << 1) + c - 48;
    c = getchar();
  }
}
inline void pushup(int ind) {
  c[ind].mn = min(c[ind << 1].mn, c[ind << 1 | 1].mn);
}
void bt(int ind, int l, int r) {
  c[ind].l = l;
  c[ind].r = r;
  c[ind].mid = (l + r) >> 1;
  if (l == r) {
    c[ind].mn = va[l][1];
    return;
  }
  bt(ind << 1, l, c[ind].mid);
  bt(ind << 1 | 1, c[ind].mid + 1, r);
  pushup(ind);
}
void pushdown(int ind) {
  c[ind << 1].mn += c[ind].laz;
  c[ind << 1].laz += c[ind].laz;
  c[ind << 1 | 1].mn += c[ind].laz, c[ind << 1 | 1].laz += c[ind].laz;
  c[ind].laz = 0;
}
void chng(int ind, int l, int r, int x) {
  if (l <= c[ind].l && c[ind].r <= r) {
    c[ind].mn += x, c[ind].laz += x;
    return;
  }
  pushdown(ind);
  if (l <= c[ind].mid) chng(ind << 1, l, r, x);
  if (r > c[ind].mid) chng(ind << 1 | 1, l, r, x);
  pushup(ind);
}
long long ask(int ind, int l, int r) {
  if (l <= c[ind].l && c[ind].r <= r) return c[ind].mn;
  long long ret = 1e18;
  if (l <= c[ind].mid) ret = min(ret, ask(ind << 1, l, r));
  if (r > c[ind].mid) ret = min(ret, ask(ind << 1 | 1, l, r));
  return ret;
}
int main() {
  rd(n), rd(m), rd(Q);
  for (int i = 1; i < n; i++) rd(va[i][0]), rd(va[i][1]);
  for (int i = 1; i <= m; i++) rd(a[i][0]), rd(a[i][1]), rd(a[i][2]);
  bt(1, 0, n - 1);
  for (int i = 1; i <= m; i++) v[a[i][0]].push_back(i);
  for (int i = 1; i <= n; i++) {
    for (int j = 0; j < v[i].size(); j++) {
      int x = v[i][j];
      chng(1, 0, a[x][1] - 1, a[x][2]);
    }
    b[i] = c[1].mn;
  }
  for (int i = 1; i <= n; i++) s.insert(va[i][0] + b[i]);
  printf("%lld\n", *s.begin());
  while (Q--) {
    int x, y;
    scanf("%d%d", &x, &y);
    s.erase(s.lower_bound(va[x][0] + b[x]));
    va[x][0] = y;
    s.insert(va[x][0] + b[x]);
    printf("%lld\n", *s.begin());
  }
}
