#include <bits/stdc++.h>
using namespace std;
const int MAX = 100000;
long long v[MAX + 5], l[MAX + 5], r[MAX + 5], d[MAX + 5], queries[MAX + 5],
    memo[MAX + 5];
int main() {
  int n, m, k;
  int x;
  scanf("%d %d %d", &n, &m, &k);
  for (int i = 0; i < n; ++i) {
    scanf("%I64d", &v[i]);
  }
  for (int i = 0; i < m; ++i) {
    scanf("%d %d %I64d", &l[i], &r[i], &d[i]);
  }
  for (int f = 0; f < k; ++f) {
    int a, b;
    scanf("%d %d", &a, &b);
    queries[a - 1]++;
    queries[b]--;
  }
  long long int cur1 = 0;
  for (int i = 0; i < m; ++i) {
    cur1 += queries[i];
    memo[l[i] - 1] += d[i] * cur1;
    memo[r[i]] -= d[i] * cur1;
  }
  long long int cur = 0;
  for (int i = 0; i < n; ++i) {
    cur += memo[i];
    if (i == 0)
      cout << (cur + v[i]);
    else
      cout << " " << (cur + v[i]);
  }
  printf("\n");
  return 0;
}
