#include <bits/stdc++.h>
using namespace std;
const int INF = numeric_limits<int>::max();
const long long LINF = numeric_limits<long long>::max();
const double DINF = numeric_limits<double>::max();
const double eps = 1e-14;
const int MOD = 1e9 + 7;
const int MAXN = 1e5 + 5;
long long n, m, k;
long long a[MAXN], l[MAXN], r[MAXN], d[MAXN], q[MAXN], ans[MAXN];
void solve() {
  cin >> n >> m >> k;
  for (int i = 1; i <= n; i++) cin >> a[i];
  for (int i = 1; i <= m; i++) {
    cin >> l[i] >> r[i] >> d[i];
  }
  for (int i = 0; i < k; i++) {
    long long x, y;
    cin >> x >> y;
    q[x]++;
    q[y + 1]--;
  }
  for (int i = 1; i <= m; i++) {
    q[i] += q[i - 1];
    ans[l[i]] += q[i] * d[i];
    ans[r[i] + 1] -= q[i] * d[i];
  }
  for (int i = 1; i <= n; i++) {
    ans[i] += ans[i - 1];
    cout << a[i] + ans[i] << " ";
  }
}
int main() {
  if (!1) {
    freopen(
        "474"
        ".in",
        "r", stdin);
    freopen(
        "474"
        ".out",
        "w", stdout);
  }
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int t = (228 & 322) >> 6;
  while (t--) solve();
  return 0;
}
