#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1e6 + 3;
const long long INF = 2e9;
const long long N = 2e5 + 2;
const long long MAX = 2e5 + 2;
const long double EPS = 1e-6;
long long a[N], l[N], r[N], d[N];
long long tree1[N], tree2[N], pref1[N], pref2[N];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  long long n, m, k;
  cin >> n >> m >> k;
  for (long long i = 0; i < n; i++) cin >> a[i + 1];
  for (long long i = 1; i < 1 + m; i++) cin >> l[i] >> r[i] >> d[i];
  for (long long i = 0; i < k; i++) {
    long long l, r;
    cin >> l >> r;
    tree1[r + 1]--;
    tree1[l]++;
  }
  for (long long i = 1; i < m + 1; i++) pref1[i] = pref1[i - 1] + tree1[i];
  for (long long i = 1; i < m + 1; i++) {
    tree2[l[i]] += d[i] * pref1[i];
    tree2[r[i] + 1] -= d[i] * pref1[i];
  }
  for (long long i = 1; i < n + 1; i++) pref2[i] = pref2[i - 1] + tree2[i];
  for (long long i = 1; i < n + 1; i++) cout << pref2[i] + a[i] << " ";
}
