#include<bits/stdc++.h>
using namespace std;
const int N = 100010;
int n,m;
//a:原数组,b:差分数组
int a[N],b[N];
//在[l,r]之间插入c
void insert(int l,int r,int c){
b[l] += c;
b[r+1] -= c;
}
int main(){
cin>>n>>m;
for(int i = 1;i <= n;i++){
cin>>a[i];
}
//插入:相当于假定a数组是空的,元素是通过插入形成的
for(int i = 1;i <= n;i++){
insert(i,i,a[i]);
}
//做m次+c的操作
int l,r,c;
for(int i = 1;i <= m;i++){
cin>>l>>r>>c;
insert(l,r,c);
}
//求原数组,相当于求b数组的前缀和
for(int i = 1;i <= n;i++){
b[i] += b[i-1];
}
//输出
for(int i = 1;i <= n;i++){
cout<<b[i]<<" ";
}
return 0;
}
/**************************************************************
Problem: 2062
User: admin
Language: C++
Result: Accepted
Time:260 ms
Memory:2856 kb
****************************************************************/