#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 100;
long long ar[N], d[N], o[N];
struct op {
  int l, r, d;
};
int main() {
  int n, m, k;
  cin >> n >> m >> k;
  for (int i = 1; i <= n; i++) cin >> ar[i];
  int l, r, D;
  vector<op> ops;
  for (int i = 0; i < m; i++) {
    cin >> l >> r >> D;
    op O = {l, r, D};
    ops.push_back(O);
  }
  int x, y;
  for (int i = 0; i < k; i++) {
    cin >> x >> y;
    o[x] += 1;
    o[y + 1] -= 1;
  }
  long long p = 0;
  for (int i = 1; i <= ops.size(); i++) {
    p = p + o[i];
    o[i] = p;
    op O = ops[i - 1];
    long long val = 1LL * o[i] * O.d;
    d[O.l] += val;
    d[O.r + 1] -= val;
  }
  long long q = 0;
  for (int i = 1; i <= n; i++) {
    q += d[i];
    cout << ar[i] + q << " ";
  }
  cout << "\n";
  return 0;
}
