Greg has an array *a* = *a*<sub class="lower-index">1</sub>, *a*<sub class="lower-index">2</sub>, ..., *a*<sub class="lower-index">*n*</sub> and *m* operations. Each operation looks as: *l*<sub class="lower-index">*i*</sub>, *r*<sub class="lower-index">*i*</sub>, *d*<sub class="lower-index">*i*</sub>, (1 ≤ *l*<sub class="lower-index">*i*</sub> ≤ *r*<sub class="lower-index">*i*</sub> ≤ *n*). To apply operation *i* to the array means to increase all array elements with numbers *l*<sub class="lower-index">*i*</sub>, *l*<sub class="lower-index">*i*</sub> + 1, ..., *r*<sub class="lower-index">*i*</sub> by value *d*<sub class="lower-index">*i*</sub>.

Greg wrote down *k* queries on a piece of paper. Each query has the following form: *x*<sub class="lower-index">*i*</sub>, *y*<sub class="lower-index">*i*</sub>, (1 ≤ *x*<sub class="lower-index">*i*</sub> ≤ *y*<sub class="lower-index">*i*</sub> ≤ *m*). That means that one should apply operations with numbers *x*<sub class="lower-index">*i*</sub>, *x*<sub class="lower-index">*i*</sub> + 1, ..., *y*<sub class="lower-index">*i*</sub> to the array.

Now Greg is wondering, what the array *a* will be after all the queries are executed. Help Greg.
The first line contains integers *n*, *m*, *k* (1 ≤ *n*, *m*, *k* ≤ 10<sup class="upper-index">5</sup>). The second line contains *n* integers: *a*<sub class="lower-index">1</sub>, *a*<sub class="lower-index">2</sub>, ..., *a*<sub class="lower-index">*n*</sub> (0 ≤ *a*<sub class="lower-index">*i*</sub> ≤ 10<sup class="upper-index">5</sup>) — the initial array.

Next *m* lines contain operations, the operation number *i* is written as three integers: *l*<sub class="lower-index">*i*</sub>, *r*<sub class="lower-index">*i*</sub>, *d*<sub class="lower-index">*i*</sub>, (1 ≤ *l*<sub class="lower-index">*i*</sub> ≤ *r*<sub class="lower-index">*i*</sub> ≤ *n*), (0 ≤ *d*<sub class="lower-index">*i*</sub> ≤ 10<sup class="upper-index">5</sup>).

Next *k* lines contain the queries, the query number *i* is written as two integers: *x*<sub class="lower-index">*i*</sub>, *y*<sub class="lower-index">*i*</sub>, (1 ≤ *x*<sub class="lower-index">*i*</sub> ≤ *y*<sub class="lower-index">*i*</sub> ≤ *m*).

The numbers in the lines are separated by single spaces.
n,m,k = map(int,input().split())
tab = list( map(int,input().split()))
operations = [list(map(lambda x: int(x),input().split())) for i in range(m)]
queries = [list(map(lambda x: int(x) - 1,input().split())) for i in range(k)]

# repeated operation with prefix sum
temp = [0 for i in range(n+1)]
for i in range(k):
    x,y = queries[i]
    temp[x] += 1
    temp[y + 1] -= 1

prefix_queries = [0] * n
prefix_queries[0] = temp[0]
for i in range(1,n):
    prefix_queries[i] = prefix_queries[i - 1] + temp[i] 

#update operation so they became the new queries
for i in range(m):
    operations[i][0] -= 1
    operations[i][1] -= 1
    operations[i][2] = prefix_queries[i] * operations[i][2]

#update array by using the same trick with the prefix sum
temp = [0 for i in range(n+1)]
for i in range(m):
    x,y,nb_times = operations[i]
    temp[x] += nb_times
    temp[y + 1] -= nb_times
    
prefix_queries = [e for e in tab]
prefix_queries[0] = temp[0]
for i in range(1,n):
    prefix_queries[i] = prefix_queries[i - 1] + temp[i]
for i in range(n):
    prefix_queries[i] += tab[i]
print(' '.join(map(str,prefix_queries)))
