Raj has a single physical network line that connects his office to the Internet. This line bandwidth is $b$ bytes per millisecond.
There are $n$ users who would like to use this network line to transmit some data. The $i$-th of them will use the line from millisecond $s_i$ to millisecond $f_i$ inclusive. His initial data rate will be set to $d_i$. That means he will use data rate equal to $d_i$ for millisecond $s_i$, and then it will change according to the procedure described below.
The flow control will happen as follows. Suppose there are $m$ users trying to transmit some data via the given network line during millisecond $x$. Denote as $t_i$ the data rate that the $i$-th of these $m$ users has at the beginning of this millisecond. All $t_i$ are non-negative integer values.
- If
$m = 0$, i. e. there are no users trying to transmit data during this millisecond, nothing happens. - If the sum of all
$t_i$is less than or equal to$b$, each active user successfully completes his transmission (the$i$-th active user transmits$t_i$bytes). After that, the data rate of each active user grows by$1$, i. e. each$t_i$is increased by$1$. - If the sum of all
$t_i$is greater than$b$, the congestion occurs and no data transmissions succeed this millisecond at all. If that happens, each$t_i$decreases twice, i. e. each$t_i$is replaced with$\lfloor \frac{t_i}{2} \rfloor$.
Raj knows all the values $n$, $b$, $s_i$, $f_i$, and $d_i$, he wants to calculate the total number of bytes transmitted by all the users in the aggregate.
Input
The first line of the input contains two integers $n$ and $b$ ($1 \leq n \leq 2 \cdot 10^5$, $1 \leq b \leq 10^9$), the number of users who will use the line and the line bandwidth, respectively.
Each of the following $n$ lines contains three integers $s_i$, $f_i$ and $d_i$ ($1 \leq s_i \leq f_i \leq 10^9$, $1 \leq d_i \leq 10^9$), denoting that the $i$-th user will try to transmit data during each millisecond between $s_i$ and $f_i$ inclusive, and the initial data rate of the $i$-th user.
Output
Print one integer — the total number of bytes all users will successfully transmit.
Note
Consider the first example.
- Millisecond
$1$: User$1$transmits$2$bytes. - Millisecond
$2$: User$1$transmits$3$bytes. - Millisecond
$3$: Congestion occurs, and no user transmits data. - Millisecond
$4$: User$1$transmits$2$bytes. - Millisecond
$5$: User$1$transmits$3$bytes.
In the second example, at each millisecond from the $7$-th to the $11$-th inclusive, congestion occurs, and the only user decreases their rate twice. However, they don't decrease the speed enough before disconnecting.
Consider the third example.
- Millisecond
$1$: User$1$transmits$1$bytes. - Millisecond
$2$: User$1$transmits$2$bytes. - Millisecond
$3$: User$1$transmits$3$bytes. - Millisecond
$4$: User$1$transmits$4$bytes. - Millisecond
$5$: User$1$transmits$5$bytes. - Millisecond
$6$: User$1$transmits$6$bytes. - Millisecond
$7$: Congestion occurs, and no user transmits data. - Millisecond
$8$: User$1$transmits$3$bytes. User$2$transmits$3$bytes. - Millisecond
$9$: Congestion occurs, and no user transmits data. - Millisecond
$10$: User$1$transmits$2$bytes. User$2$transmits$2$bytes. - Millisecond
$11$: User$1$transmits$3$bytes. User$2$transmits$3$bytes. - Millisecond
$12$: Congestion occurs, and no user transmits data. - Millisecond
$13$: User$2$transmits$2$bytes. - Millisecond
$14$: User$2$transmits$3$bytes. - Millisecond
$15$: User$2$transmits$4$bytes. - Millisecond
$16$: User$2$transmits$5$bytes. - Millisecond
$17$: User$2$transmits$6$bytes. - Millisecond
$18$: Congestion occurs, and no user transmits data. - Millisecond
$19$: User$2$transmits$3$bytes. - Millisecond
$20$: User$2$transmits$4$bytes.
样例
1 3
1 5 2
10
1 10
7 11 1000
0
2 6
1 12 1
8 20 3
64
3 10
1 100 1
30 60 20
40 80 6
534
题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。