#include <bits/stdc++.h>
using namespace std;
template <typename T>
constexpr string_view gtype() {
  string_view s = __PRETTY_FUNCTION__;
  return string_view(s.data() + 45, s.find(';', 45) - 45);
}
const int MAXN = 1e5 + 9;
const int MOD = 10;
const int OO = 1e9;
long long arr[MAXN] = {0};
long long ops[MAXN] = {0};
long long pre[MAXN] = {0};
struct xi {
  int l;
  int r;
  int d;
};
xi oppo[MAXN];
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(NULL);
  int n, m, k;
  cin >> n >> m >> k;
  for (int i = 0; i < n; i++) cin >> arr[i];
  for (int i = 0; i < m; i++) {
    int x, y, z;
    cin >> x >> y >> z;
    oppo[i] = {x - 1, y - 1, z};
  }
  for (int i = 0; i < k; i++) {
    int x, y;
    cin >> x >> y;
    ops[x - 1]++;
    ops[y]--;
  }
  for (int i = 1; i < m; i++) ops[i] += ops[i - 1];
  for (int i = 0; i < m; i++) {
    pre[oppo[i].l] += ops[i] * oppo[i].d;
    pre[oppo[i].r + 1] -= ops[i] * oppo[i].d;
  }
  for (int i = 1; i < n; i++) pre[i] += pre[i - 1];
  for (int i = 0; i < n; i++) {
    cout << arr[i] + pre[i] << " ";
  }
  cout << endl;
  return 0;
}
