#include <bits/stdc++.h>
using namespace std;
const int maxN = (int)1E5 + 5;
const int maxM = (int)1E5 + 5;
int n, m, k;
int a[maxN];
long long dd[maxN];
pair<pair<int, int>, int> b[maxM];
int d[maxM];
int main() {
  scanf("%d %d %d", &n, &m, &k);
  for (int i = 1; i <= n; ++i) scanf("%d", &a[i]);
  for (int i = 1; i <= m; ++i)
    scanf("%d %d %d", &b[i].first.first, &b[i].first.second, &b[i].second);
  memset(d, 0, sizeof(d));
  for (int i = 1; i <= k; ++i) {
    int x, y;
    scanf("%d %d", &x, &y);
    ++d[x];
    --d[y + 1];
  }
  int s = 0;
  for (int i = 1; i <= m; ++i) {
    s += d[i];
    d[i] = s;
  }
  memset(dd, 0, sizeof(dd));
  for (int i = 1; i <= m; ++i) {
    dd[b[i].first.first] += (long long)d[i] * b[i].second;
    dd[b[i].first.second + 1] -= (long long)d[i] * b[i].second;
  }
  long long ss = 0;
  for (int i = 1; i <= n; ++i) {
    ss += dd[i];
    cout << ss + a[i] << " ";
  }
  cout << "\n";
  return 0;
}
