#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
****************************************************************/