#include <iostream>
#include <vector>
using namespace std;
//写这个题特别需要注意边界问题,老是报错
int main() {
int n,m;
cin>>n>>m;
vector<long long> arr(n+1,0);
for(int i=1;i<=n;i++){
cin>>arr[i];
}
vector<vector<long long>> oper(m,vector<long long>(3,0));
for(int i=0;i<m;i++){
cin>>oper[i][0]>>oper[i][1]>>oper[i][2];
}
vector<long long> dp(n+1,0);
for(int i=1;i<n+1;i++){
dp[i]=arr[i]-arr[i-1];
}
for(int i=0;i<m;i++){
int l=oper[i][0];
int r=oper[i][1];
int k=oper[i][2];
dp[l]+=k;
if(r+1<=n) dp[r+1]-=k;
}
for(int i=1;i<=n;i++){
arr[i]=arr[i-1]+dp[i];
}
for(int i=1;i<n+1;i++){
cout<<arr[i]<<" ";
}
cout<<endl;
return 0;
}
// 64 位输出请用 printf("%lld")