#include <bits/stdc++.h>
using namespace std;
inline long long read() {
  long long x(0), w(1);
  char c = getchar();
  while (c ^ '-' && (c < '0' || c > '9')) c = getchar();
  if (c == '-') w = -1, c = getchar();
  while (c >= '0' && c <= '9') x = (x << 3) + (x << 1) + c - '0', c = getchar();
  return x * w;
}
long long n, m, K, l[100010], r[100010], d[100010], x[100010], y[100010],
    a[100010];
long long c1[100010], c2[100010];
signed main() {
  n = read(), m = read(), K = read();
  for (long long i = 1; i <= n; ++i) a[i] = read();
  for (long long i = 1; i <= m; ++i) {
    l[i] = read(), r[i] = read(), d[i] = read();
  }
  for (long long i = 1; i <= K; ++i) {
    x[i] = read(), y[i] = read();
    ++c2[x[i]], --c2[y[i] + 1];
  }
  for (long long i = 1; i <= m; ++i) {
    c2[i] += c2[i - 1];
    c1[l[i]] += c2[i] * d[i];
    c1[r[i] + 1] -= c2[i] * d[i];
  }
  for (long long i = 1; i <= n; ++i) {
    c1[i] += c1[i - 1];
    printf("%lld ", c1[i] + a[i]);
  }
  return 0;
}
