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" : " "));
        }
    }
}