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