Please, try EDU on Codeforces! New educational section with videos, subtitles, texts, and problems. ×

A. Greg and Array
time limit per test
1.5 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

Greg has an array a = a 1, a 2, ..., a n and m operations. Each operation looks as: l i, r i, d i, (1 ≤ l i ≤ r i ≤ n). To apply operation i to the array means to increase all array elements with numbers l i, l i + 1, ..., r i by value d i.

Greg wrote down k queries on a piece of paper. Each query has the following form: x i, y i, (1 ≤ x i ≤ y i ≤ m). That means that one should apply operations with numbers x i, x i + 1, ..., y i to the array.

Now Greg is wondering, what the array a will be after all the queries are executed. Help Greg.

Input

The first line contains integers n, m, k (1 ≤ n, m, k ≤ 105). The second line contains n integers: a 1, a 2, ..., a n (0 ≤ a i ≤ 105) — the initial array.

Next m lines contain operations, the operation number i is written as three integers: l i, r i, d i, (1 ≤ l i ≤ r i ≤ n), (0 ≤ d i ≤ 105).

Next k lines contain the queries, the query number i is written as two integers: x i, y i, (1 ≤ x i ≤ y i ≤ m).

The numbers in the lines are separated by single spaces.

Output

On a single line print n integers a 1, a 2, ..., a n — the array after executing all the queries. Separate the printed numbers by spaces.

Please, do not use the %lld specifier to read or write 64-bit integers in C++. It is preferred to use the cin, cout streams of the %I64d specifier.

Examples
Input
3 3 31 2 31 2 11 3 22 3 41 21 32 3
Output
9 18 17
Input
1 1 111 1 11 1
Output
2
Input
4 3 61 2 3 41 2 12 3 23 4 41 21 32 31 21 32 3
Output
5 18 31 20