#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

struct task
{
    int a, b, val;
};

vector <task> t;
vector <int> v;
int n, m;

void read()
{
    task ta;
    cin >> n >> m;
    v.resize(n+1, 0);
    for(int i = 0; i < m; i++)
    {
        cin >> --ta.a >> --ta.b >> ta.val;
        t.push_back(ta);
    }
}

void filll()
{
    int val, ind;
    for(int i = 0; i < m; i++)
    {
        val = t[i].val;
        for(int j = t[i].a; j <= t[i].b; j++)
        {
            if(v[j] == 0) ind = j;
            else val -= v[j];
        }
        v[ind] = val;
    }
}

bool sortt(task t1, task t2)
{
    return t1.a < t2.a;
}

int main()
{
    read();
    sort(t.begin(), t.end(), sortt);
    filll();
    for(int i = 1; i <= n; i++)
    {
        cout << v[i] << " ";
    }
    return 0;
}