#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N=2e5+5;
int n,q,t[2][N];
pair <int,int> p[N];
struct NODE{
int x,ty,l;
} qu[N];
void update(int k,int idx,int val){
for(int i=idx;i<N;i+=(i&-i)) t[k][i]+=val;
}
int query(int k,int idx){
int res=0;
for(int i=idx;i>0;i-=(i&-i)) res+=t[k][i];
return res;
}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n >> q;
for(int i=1;i<=n;i++) update(0,i,1);
for(int i=1;i<=q;i++) cin >> qu[i].x >> qu[i].ty >> qu[i].l;
for(int i=q;i>=1;i--){
auto [x,ty,l]=qu[i];
if(ty==1){
int lo=0,hi=n;
while(lo<hi){
int mid=(lo+hi+1)/2;
if(query(0,mid)<=x) lo=mid;
else hi=mid-1;
}
if(lo==0) continue;
update(1,1,l);
update(1,lo+1,-l);
}
else{
int lo=1,hi=n+1;
while(lo<hi){
int mid=(lo+hi)/2;
if(query(0,mid)-2*query(1,mid)>x) hi=mid;
else lo=mid+1;
}
update(0,lo,l*2);
update(1,lo,l);
}
}
for(int i=1;i<=n;i++) cout << query(1,i) << "\n";
}