#include <bits/stdc++.h>
using namespace std;
struct ranges {
  long long l;
  long long r;
  long long d;
};
int32_t main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long n, m, k;
  cin >> n >> m >> k;
  long long a[n + 1];
  for (long long i = 1; i <= n; i++) {
    cin >> a[i];
  }
  ranges op[m + 1];
  for (long long i = 1; i <= m; i++) {
    cin >> op[i].l >> op[i].r >> op[i].d;
  }
  map<long long, long long> mp1, mp2;
  for (long long i = 0; i < k; i++) {
    long long x, y;
    cin >> x >> y;
    mp1[x]++, mp1[y + 1]--;
  }
  for (long long i = 2; i < m + 2; i++) mp1[i] += mp1[i - 1];
  for (long long i = 1; i <= m; i++) {
    mp2[op[i].l] += op[i].d * mp1[i];
    mp2[op[i].r + 1] -= op[i].d * mp1[i];
  }
  for (long long i = 2; i < n + 2; i++) mp2[i] += mp2[i - 1];
  for (long long i = 1; i <= n; i++) cout << a[i] + mp2[i] << " ";
  return 0;
}
