import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int m = in.nextInt();
long[] arr = new long[n];
for (int i = 0; i < n; i++) {
arr[i] = in.nextLong();
}
// 创建差分数组,长度为n+1以避免越界
long[] diff = new long[n + 1];
while (m-- > 0) {
int l = in.nextInt() - 1; // 转换为0-based索引
int r = in.nextInt() - 1;
long k = in.nextLong();
// 差分操作:在l处加上k,在r+1处减去k
diff[l] += k;
diff[r + 1] -= k;
}
// 计算前缀和,得到每个位置的总增量,并更新原数组
long current = 0;
for (int i = 0; i < n; i++) {
current += diff[i];
arr[i] += current;
}
// 输出结果
for (int i = 0; i < n; i++) {
System.out.print(arr[i] + (i == n - 1 ? "\n" : " "));
}
}
}