#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  long long N, M, K;
  scanf("%lld", &N);
  scanf("%lld", &M);
  scanf("%lld", &K);
  long long Inp[M + 5][3], temp[100005] = {0};
  vector<long long> a, b;
  for (long long n = 0; n < N; n = n + 1) {
    long long x;
    scanf("%lld", &x);
    a.push_back(x);
  }
  for (long long n = 0; n < M; n = n + 1) {
    scanf("%lld", &Inp[n][0]);
    scanf("%lld", &Inp[n][1]);
    scanf("%lld", &Inp[n][2]);
    Inp[n][0] -= 1;
    Inp[n][1] -= 1;
  }
  for (long long n = 0; n < K; n = n + 1) {
    long long x, y;
    scanf("%lld", &x);
    scanf("%lld", &y);
    x -= 1;
    y -= 1;
    temp[x] += 1;
    if ((y + 1) < M) {
      temp[y + 1] -= 1;
    }
  }
  for (long long n = 0; n < M; n = n + 1) {
    if (n == 0) {
      b.push_back(temp[n]);
    } else {
      b.push_back(b[b.size() - 1] + temp[n]);
    }
  }
  long long Sum[100005] = {0};
  for (long long n = 0; n < M; n = n + 1) {
    long long x, y, z;
    x = Inp[n][0];
    y = Inp[n][1];
    z = Inp[n][2];
    Sum[x] += (z * b[n]);
    if ((y + 1) < N) {
      Sum[y + 1] -= (z * b[n]);
    }
  }
  vector<long long> c;
  for (long long n = 0; n < N; n = n + 1) {
    if (n == 0) {
      c.push_back(Sum[n]);
    } else {
      c.push_back(c[c.size() - 1] + Sum[n]);
    }
  }
  for (long long n = 0; n < N; n = n + 1) {
    cout << a[n] + c[n] << " ";
  }
  cout << endl;
  return 0;
}
