#include<iostream>
#include<vector>
using namespace std;
typedef long long ll;
int main() {
ll n, m;
cin >> n >> m;
vector<ll> a(n + 1, 0); // 原始数组,索引从1开始,但数组大小为n+1,a[0]用于差分数组
vector<ll> diff(n + 2, 0); // 差分数组,大小为n+2,因为需要处理边界情况
// 读取原始数组,并构建差分数组
for (int i = 1; i <= n; ++i) {
cin >> a[i];
diff[i] = a[i] - a[i - 1]; // 构建差分数组
}
// 区间修改操作
for (int i = 0; i < m; ++i) {
ll l, r, k;
cin >> l >> r >> k;
diff[l] += k; // 在区间起始位置增加k
if (r + 1 <= n) { // 确保不越界
diff[r + 1] -= k; // 在区间结束位置的下一个位置减少k,实现区间内每个元素都增加k
}
}
// 通过差分数组恢复原始数组并输出
ll sum = 0;
for (int i = 1; i <= n; ++i) {
sum += diff[i]; // 累加差分数组得到原始数组的值
cout << sum << ' ';
}
cout << endl;
return 0;
}