#include<iostream>
using namespace std;
const int N = 1e5 + 10;
int a[N],b[N];
void insert(int l,int r,int c){
b[l] += c;
b[r + 1] -= c;
}
int main(){
int m,n;
cin>>n>>m;
for(int i =1;i <= n;i ++){
cin>>a[i];
insert(i,i,a[i]);//起初可以把数组a,b看作全是0的数组,a满足a[i] = b[0] +...+b[i];
//题目中a[i]是有初值的,相当于把数组a的[1,1][2,2][i,i]都加上相应的a[i],所以使用insert函数
}
while(m --){
int l,r,c;
cin>>l>>r>>c;
insert(l,r,c);
}
for(int i = 1;i <= n; i ++)//把b[n]变为b的前n项和
b[i] = b[i-1] + b[i];
for(int i =1;i <= n; i ++)//这两个for循环可以写到一起
cout<<b[i]<<" ";
}