Luka 正在一条长长的直路上开卡车,路上有许多红绿灯。对于每个红绿灯,他都知道红灯和绿灯会持续多长时间(该循环无限重复)。
当 Luka 开始他的旅程时,所有红绿灯都是红色的,并且刚刚开始它们的循环。Luka 每秒移动一个单位距离。当红绿灯是红灯时,他会停下来等待,直到它变成绿灯。
编写一个程序,确定 Luka 到达道路尽头需要多少时间。道路的起点在距离 $0$ 处,终点在距离 $L$ 处。
输入格式
第一行包含两个整数 $N$ 和 $L$($1 \le N \le 100$,$1 \le L \le 1000$),分别表示道路上的红绿灯数量和道路的长度。
接下来的 $N$ 行,每行包含三个整数 $D$、$R$ 和 $G$,描述一个红绿灯($1 \le D < L$,$1 \le R \le 100$,$1 \le G \le 100$)。$D$ 是红绿灯距离道路起点的距离。$R$ 和 $G$ 分别表示红灯和绿灯持续的时间。
红绿灯将按照 $D$ 递增的顺序给出。没有两个红绿灯会处于相同的位置。
输出格式
输出 Luka 到达道路终点所需的时间(以秒为单位)。
样例
输入样例 1
2 10 3 5 5 5 2 2
输出样例 1
12
输入样例 2
4 30 7 13 5 14 4 4 15 3 10 25 1 1
输出样例 2
36
说明
在第一个样例中,Luka 将在第一个红绿灯处等待 $2$ 秒。之后,他到达第二个红绿灯时正好是绿灯,可以直接通过。