n = int(eval(input()))

setting = []

for _ in range(n-1):

    setting.append(list(map(int, input().split())))



results = []

for i in range(n-1):

    cur = 0

    for j in range(i, n-1):

        if cur < setting[j][1]:

            cur = setting[j][0] + setting[j][1]

        elif 0 == cur % setting[j][2]:

            cur += setting[j][0]

        else:

            cur += setting[j][0] + setting[j][2] - cur % setting[j][2]

    results.append(cur)

results.append(0)

for result in results:

    print(result)

"""

シミュレーション問題

- 数式にこだわりすぎた

- WAになって何が間違っているかはわからなかった

- Nの範囲を確認すればO(N^2)でも十分問題なかったことが分かったので素直に実装すればよかった

"""

n = int(eval(input()))

setting = []

for _ in range(n-1):

    setting.append(tuple(map(int, input().split())))



results = []

for i in range(n-1):

    cur = 0

    for c, s, f in setting[i:]:

        if cur < s:

            cur = c + s

        elif 0 == cur % f:

            cur += c

        else:

            cur += c + f - cur % f

    results.append(cur)

results.append(0)

for result in results:

    print(result)

n = int(eval(input()))
setting = []
for _ in range(n - 1):
    setting.append(list(map(int, input().split())))
results = []
for i in range(n - 1):
    cur = 0
    for j in range(i, n - 1):
        if cur < setting[j][1]:
            cur = setting[j][0] + setting[j][1]
        elif 0 == cur % setting[j][2]:
            cur += setting[j][0]
        else:
            cur += setting[j][0] + setting[j][2] - cur % setting[j][2]
    results.append(cur)
results.append(0)
for result in results:
    print(result)

"""
シミュレーション問題
- 数式にこだわりすぎた
- WAになって何が間違っているかはわからなかった
- Nの範囲を確認すればO(N^2)でも十分問題なかったことが分かったので素直に実装すればよかった
"""
n = int(eval(input()))
setting = []
for _ in range(n - 1):
    setting.append(tuple(map(int, input().split())))
results = []
for i in range(n - 1):
    cur = 0
    for c, s, f in setting[i:]:
        if cur < s:
            cur = c + s
        elif 0 == cur % f:
            cur += c
        else:
            cur += c + f - cur % f
    results.append(cur)
results.append(0)
for result in results:
    print(result)

+""" +シミュレーション問題 +- 数式にこだわりすぎた +- WAになって何が間違っているかはわからなかった +- Nの範囲を確認すればO(N^2)でも十分問題なかったことが分かったので素直に実装すればよかった +""" -    setting.append(list(map(int, input().split()))) +    setting.append(tuple(map(int, input().split()))) -    for j in range(i, n - 1): -        if cur < setting[j][1]: -            cur = setting[j][0] + setting[j][1] -        elif 0 == cur % setting[j][2]: -            cur += setting[j][0] +    for c, s, f in setting[i:]: +        if cur < s: +            cur = c + s +        elif 0 == cur % f: +            cur += c -            cur += setting[j][0] + setting[j][2] - cur % setting[j][2] +            cur += c + f - cur % f