#include<iostream>
using namespace std;
const int maxn=1e6+10;
int a[maxn],b[maxn];
int insert(int l,int r,int c)
{
b[l]+=c;
b[r+1]-=c;
}
int main()
{
int n,m;
cin>>n>>m;
//初始化a[i]
for(int i=1;i<=n;i++) cin>>a[i];
//构造差分数组
b[1]=a[1];
for(int i=1;i<n;i++) b[i+1]=a[i+1]-a[i];
//插入的过程
while(m--)
{
int l,r,c;
cin>>l>>r>>c;
insert(l,r,c);
}
//对b[i]求和,既是前缀和,也是新的a[i]的值
for(int i=1;i<=n;i++)
{b[i]+=b[i-1];
cout<<b[i]<<" ";}
}