#include <bits/stdc++.h>
using namespace std;
long long A[100010], S[100010], P[100010];
long long n, m, k;
struct query {
  long long L, R, d;
} Q[100010];
void xuly() {
  long long x, y;
  while (k--) {
    cin >> x >> y;
    ++P[x];
    --P[y + 1];
  }
  for (long long i = 1; i <= m; ++i) P[i] += P[i - 1];
  for (long long i = 1; i <= m; ++i) {
    query T = Q[i];
    S[T.L] += T.d * P[i];
    S[T.R + 1] -= T.d * P[i];
  }
  for (long long i = 1; i <= n; ++i) {
    S[i] += S[i - 1];
    A[i] += S[i];
  }
  for (long long i = 1; i <= n; ++i) cout << A[i] << " ";
}
void nhap() {
  cin >> n >> m >> k;
  for (long long i = 1; i <= n; ++i) cin >> A[i];
  for (long long i = 1; i <= m; ++i) {
    cin >> Q[i].L >> Q[i].R >> Q[i].d;
  }
}
int main() {
  nhap();
  xuly();
  return 0;
}
