#include <bits/stdc++.h>
using namespace std;
int n, m, k;
vector<long long> v;
vector<pair<pair<long long, long long>, long long> > vv;
vector<long long> ary;
void update(int pos, long long val, int mx) {
  while (pos <= mx) {
    ary[pos] += val;
    pos += pos & -pos;
  }
}
long long get(int pos, int mx) {
  long long re = 0;
  while (pos > 0) {
    re += ary[pos];
    pos -= pos & -pos;
  }
  return re;
}
int main(void) {
  ios_base::sync_with_stdio(0);
  cin >> n >> m >> k;
  v.resize(n);
  for (int i = 0; i < (n); i++) cin >> v[i];
  vv.resize(m);
  for (int i = 0; i < (m); i++)
    cin >> vv[i].first.first >> vv[i].first.second >> vv[i].second;
  ary.resize(m + 1, 0);
  for (int i = 0; i < (k); i++) {
    long long t, tt;
    cin >> t >> tt;
    update(t, 1, m);
    update(tt + 1, -1, m);
  }
  for (int i = 0; i < (m); i++) {
    vv[i].second *= get(i + 1, m);
  }
  ary.clear();
  ary.resize(n + 2, 0);
  for (int i = 0; i < (m); i++) {
    update(vv[i].first.first, vv[i].second, n);
    update(vv[i].first.second + 1, -vv[i].second, n);
  }
  for (int i = 0; i < (n); i++) {
    v[i] += get(i + 1, n);
  }
  for (int i = 0; i < (n); i++) cout << v[i] << " ";
  return 0;
}
