#include <bits/stdc++.h>
using namespace std;
long long middle_of_three(long long a, long long b, long long c) {
  if (a > b) {
    if (b > c)
      return b;
    else if (a > c)
      return c;
    else
      return a;
  } else {
    if (a > c)
      return a;
    else if (b > c)
      return c;
    else
      return b;
  }
}
long long mindiff(long long a[], long long n, long long k) {
  long long diff = 1e15 + 7;
  for (long long i = 0; i <= (n - k); i++)
    diff = min(diff, a[i + k - 1] - a[i]);
  return diff;
}
long long poww(long long power, long long base) {
  if (base == 0) return 1;
  if (power == 1) return 1;
  if (base == 1) return power;
  long long ans = poww(power, base / 2);
  if (base % 2 == 0)
    return (ans % 1000000007) * (ans % 1000000007) % 1000000007;
  return (power * ((ans % 1000000007) * (ans % 1000000007) % 1000000007) %
          1000000007);
}
const int MX = 1e5 + 7;
vector<long long> v[MX];
bool vis[MX];
long long a[MX], l[MX], r[MX], d[MX], op[MX], sum[MX];
int main() {
  ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  long long n, m, q;
  cin >> n >> m >> q;
  for (long long i = 0; i < n; i++) cin >> a[i];
  for (long long i = 0; i < m; i++) cin >> l[i] >> r[i] >> d[i];
  for (long long i = 0; i < q; i++) {
    long long x, y;
    cin >> x >> y;
    op[x - 1]++;
    op[y]--;
  }
  for (long long i = 1; i < m; i++) op[i] += op[i - 1];
  for (long long i = 0; i < m; i++) {
    sum[l[i] - 1] += op[i] * d[i];
    sum[r[i]] -= op[i] * d[i];
  }
  for (long long i = 1; i < n; i++) sum[i] += sum[i - 1];
  for (long long i = 0; i < n; i++) cout << sum[i] + a[i] << " ";
}
