#include <iostream>
#include <algorithm>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
// Tìm biên trên của ngày cần xét
const int MAXD = 100000 + 5;
static long long diff[MAXD+2] = {0};
int minDay = MAXD, maxDay = 0;
for(int i = 0; i < n; ++i){
long long x, d, k;
cin >> x >> d >> k;
// Bắt đầu tăng k tại x, giảm k tại x+d
diff[x] += k;
diff[x + d] -= k;
if (x < minDay) minDay = x;
if (x + d - 1 > maxDay) maxDay = x + d - 1;
}
long long prev = 0, curr = 0;
bool firstOutput = true;
// Duyệt từ minDay đến maxDay
for(int day = minDay; day <= maxDay; ++day){
curr += diff[day];
if (curr != prev) {
if (!firstOutput) cout << ' ';
cout << curr;
firstOutput = false;
prev = curr;
}
}
cout << '\n';
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKXsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CgogICAgaW50IG47CiAgICBjaW4gPj4gbjsKCiAgICAvLyBUw6xtIGJpw6puIHRyw6puIGPhu6dhIG5nw6B5IGPhuqduIHjDqXQKICAgIGNvbnN0IGludCBNQVhEID0gMTAwMDAwICsgNTsKICAgIHN0YXRpYyBsb25nIGxvbmcgZGlmZltNQVhEKzJdID0gezB9OwogICAgaW50IG1pbkRheSA9IE1BWEQsIG1heERheSA9IDA7CgogICAgZm9yKGludCBpID0gMDsgaSA8IG47ICsraSl7CiAgICAgICAgbG9uZyBsb25nIHgsIGQsIGs7CiAgICAgICAgY2luID4+IHggPj4gZCA+PiBrOwogICAgICAgIC8vIELhuq90IMSR4bqndSB0xINuZyBrIHThuqFpIHgsIGdp4bqjbSBrIHThuqFpIHgrZAogICAgICAgIGRpZmZbeF0gICAgICs9IGs7CiAgICAgICAgZGlmZlt4ICsgZF0gLT0gazsKICAgICAgICBpZiAoeCA8IG1pbkRheSkgbWluRGF5ID0geDsKICAgICAgICBpZiAoeCArIGQgLSAxID4gbWF4RGF5KSBtYXhEYXkgPSB4ICsgZCAtIDE7CiAgICB9CgogICAgbG9uZyBsb25nIHByZXYgPSAwLCBjdXJyID0gMDsKICAgIGJvb2wgZmlyc3RPdXRwdXQgPSB0cnVlOwoKICAgIC8vIER1eeG7h3QgdOG7qyBtaW5EYXkgxJHhur9uIG1heERheQogICAgZm9yKGludCBkYXkgPSBtaW5EYXk7IGRheSA8PSBtYXhEYXk7ICsrZGF5KXsKICAgICAgICBjdXJyICs9IGRpZmZbZGF5XTsKICAgICAgICBpZiAoY3VyciAhPSBwcmV2KSB7CiAgICAgICAgICAgIGlmICghZmlyc3RPdXRwdXQpIGNvdXQgPDwgJyAnOwogICAgICAgICAgICBjb3V0IDw8IGN1cnI7CiAgICAgICAgICAgIGZpcnN0T3V0cHV0ID0gZmFsc2U7CiAgICAgICAgICAgIHByZXYgPSBjdXJyOwogICAgICAgIH0KICAgIH0KICAgIGNvdXQgPDwgJ1xuJzsKICAgIHJldHVybiAwOwp9Cg==