#include <bits/stdc++.h>
using namespace std;
struct mod {
  int l;
  int r;
  long long val;
};
const int N = (int)1e5 + 10;
long long a[N], x[N];
mod z[N];
int main() {
  int i, j, n, m, k;
  int b;
  long long c = 0;
  int left, right;
  cin >> n >> m >> k;
  for (i = 1; i <= n; i++) {
    scanf(" %d", &b);
    a[i] = (long long)b - c;
    c = (long long)b;
  }
  for (i = 1; i <= m; i++) scanf(" %d %d %I64d", &z[i].l, &z[i].r, &z[i].val);
  for (i = 0; i < k; i++) {
    scanf(" %d %d", &left, &right);
    x[left]++;
    x[right + 1]--;
  }
  for (i = 1; i <= m; i++) x[i] += x[i - 1];
  for (i = 1; i <= m; i++) {
    a[z[i].l] += x[i] * z[i].val;
    a[z[i].r + 1] -= x[i] * z[i].val;
  }
  for (i = 1; i <= n; i++) a[i] += a[i - 1];
  for (i = 1; i <= n; i++) printf("%I64d ", a[i]);
  printf("\n");
  return 0;
}
