 #include <bits/stdc++.h>
#define ull unsigned long long
#define ll long long
#define el endl
#define all(v) v.begin(), v.end()
#define nl '\n'

using namespace std;

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    ll n, q;
    if (!(cin >> n >> q))
        return 0;

    vector<ll> vc(n);
    for (int i = 0; i < n; i++)
    {
        cin >> vc[i];
    }

    // إنشاء مصفوفة الفروق بالحجم n + 1 لتجنب Out of Bounds عند R
    vector<ll> diff(n + 1, 0);

    while (q--)
    {
        ll l, r, val;
        cin >> l >> r >> val;

        // O(1) لكل استعلام بدلاً من اللوب
        diff[l - 1] += val;
        diff[r] -= val;
    }

    // حساب المجموع التراكمي وتطبيقه على الفيكتور الأصلي
    ll sum = 0;
    for (int i = 0; i < n; i++)
    {
        sum += diff[i];
        vc[i] += sum;
    }

    // طباعة الناتج النهائي
    for (int i = 0; i < n; i++)
    {
        cout << vc[i] << (i == n - 1 ? "" : " ");
    }
    cout << nl;

    return 0; // 4 3 7 5 6
}