1107_F. Vasya and Endless Credits
Vasya wants to buy himself a nice new car. Unfortunately, he lacks some money. Currently he has exactly 0 burles.

However, the local bank has n credit offers. Each offer can be described with three numbers a_i, b_i and k_i. Offers are numbered from 1 to n. If Vasya takes the i-th offer, then the bank gives him a_i burles at the beginning of the month and then Vasya pays bank b_i burles at the end of each month for the next k_i months (including the month he activated the offer). Vasya can take the offers any order he wants.

Each month Vasya can take no more than one credit offer. Also each credit offer can not be used more than once. Several credits can be active at the same time. It implies that Vasya pays bank the sum of b_i over all the i of active credits at the end of each month.

Vasya wants to buy a car in the middle of some month. He just takes all the money he currently has and buys the car of that exact price.

Vasya don't really care what he'll have to pay the bank back after he buys a car. He just goes out of the country on his car so that the bank can't find him anymore.

What is the maximum price that car can have?

Input

The first line contains one integer n (1 ≤ n ≤ 500) — the number of credit offers.

Each of the next n lines contains three integers a_i, b_i and k_i (1 ≤ a_i, b_i, k_i ≤ 10^9).

Output

Print one integer — the maximum price of the car.

Examples

Input


4
10 9 2
20 33 1
30 115 1
5 3 2


Output


32


Input


3
40 1 2
1000 1100 5
300 2 1


Output


1337

Note

In the first example, the following sequence of offers taken is optimal: 4 → 3.

The amount of burles Vasya has changes the following way: 5 → 32 → -86 → .... He takes the money he has in the middle of the second month (32 burles) and buys the car.

The negative amount of money means that Vasya has to pay the bank that amount of burles.

In the second example, the following sequence of offers taken is optimal: 3 → 1 → 2.

The amount of burles Vasya has changes the following way: 0 → 300 → 338 → 1337 → 236 → -866 → .... 
```python
n = int(input())
a = [tuple(map(int, input().split())) for i in range(n)]

a = [(y, x, k) for x, y, k in a]
a.sort(reverse=True)
dp = [[-1] * (n + 1) for i in range(n)]

def f(i, j):
    if i < 0 or j < -1: return 0
    if dp[i][j] == -1:
        y, x, k = a[i]
        dp[i][j] = f(i - 1, j) + max(0, x - k * y)
        if 0 <= j < k: dp[i][j] = max(dp[i][j], x - j * y + f(i - 1, j - 1))
    return dp[i][j]

print(max(f(n - 1, j) for j in range(-1, n)))

```