#include <bits/stdc++.h>
using namespace std;
typedef struct {
  long long left;
  long long right;
  long long value;
} OPE;
long long arr[100010];
long long add[100010];
OPE ope[100010];
long long times[100010];
int main() {
  ios::sync_with_stdio(false);
  long long n, m, k;
  while (cin >> n >> m >> k) {
    memset(arr, 0, sizeof(arr));
    memset(times, 0, sizeof(times));
    memset(add, 0, sizeof(add));
    for (long long i = 1; i <= n; i++) cin >> arr[i];
    long long left, right;
    for (long long i = 1; i <= m; i++)
      cin >> ope[i].left >> ope[i].right >> ope[i].value;
    for (long long i = 0; i < k; i++) {
      cin >> left >> right;
      times[left]++;
      times[right + 1]--;
    }
    for (long long i = 1; i <= m; i++) times[i] += times[i - 1];
    for (long long i = 1; i <= m; i++) {
      add[ope[i].left] += ope[i].value * times[i];
      add[ope[i].right + 1] -= ope[i].value * times[i];
    }
    for (long long i = 1; i <= n; i++) add[i] += add[i - 1];
    for (long long i = 1; i <= n; i++) cout << arr[i] + add[i] << " ";
    cout << endl;
  }
}
