import java.util.Scanner;
/**
* @author supermejane
* @date 2025/10/6
* @description BGN52 【模板】差分
*/
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt(), times = in.nextInt();
//diff[n + 1]防止越界,同时diff[n]不会被访问(作用是终止区间修改的影响),因此不会影响最终的复原
long[] a = new long[n], diff = new long[n + 1];
for (int i = 0; i < n; i++) {
a[i] = in.nextInt();
diff[i] = i == 0 ? a[i] : a[i] - a[i - 1];
}
while (times-- > 0) {
int l = in.nextInt(), r = in.nextInt(), num = in.nextInt();
diff[l - 1] += num;
diff[r] -= num;
}
long current = 0L;
for (int i = 0; i < n; i++) {
//Long current = (long) a[0];
current = i == 0 ? diff[i] : diff[i] + current;
System.out.print(i == 0 ?current : " " + current);
}
}
}
//前面是模板,主要就是一开始精度有问题,但是我怕开Long数组内存不够,就用current输出,还是有精度问题(应该操作diff的时候多次相加),其实diff改成Long就行了,没想到后面开两个Long[]内存还是够。