#include <bits/stdc++.h>
using namespace std;
const long long max_n = 1e5 + 15;
long long n, m, k, l, r, v, niz[max_n], cnt[max_n], upd[max_n];
vector<pair<long long, long long> > add[max_n];
int main() {
  cin >> n >> m >> k;
  for (long long i = 0; i < n; i++) cin >> niz[i];
  for (long long i = 0; i < m; i++) {
    cin >> l >> r >> v;
    add[l - 1].push_back(make_pair(v, i));
    add[r].push_back(make_pair(-v, i));
  }
  for (long long i = 0; i < k; i++) {
    cin >> l >> r;
    upd[l - 1]++;
    upd[r]--;
  }
  for (long long i = 0, curr = 0; i < m; i++) {
    curr += upd[i];
    cnt[i] = curr;
  }
  for (long long i = 0, curr = 0; i < n; i++) {
    for (long long j = 0; j < add[i].size(); j++)
      curr += add[i][j].first * cnt[add[i][j].second];
    cout << curr + niz[i] << " ";
  }
  return 0;
}
