D - Fito y las torres

Time limit: 1 s
Memory limit: 32 MiB
Languages: C, C++, Java, JavaScript, ... (details)

Fito se adentró demasiado en el terreno enemigo con su héroe, y ahora tiene que hacer que regrese a su base. Para esto él tiene que pasar por una línea que contiene N torres.

Él sabe que las torres deciden lanzar ataques cada cierto tiempo, y que una vez que deciden hacerlo, seguirán atacando durante cierto tiempo también. Por ejemplo si una torre ataca cada 5 segundos y sus ataques duran 4 segundos, esto significa que se demora 4 segundos atacando, luego está sin atacar durante 5 segundos, después vuelve a atacar durante 4 segundos, y así sucesivamente.

Como Fito ya casi no tiene vida, un solo ataque de una torre sería capaz de matarlo, por lo tanto tiene que lograr virar sin que ninguna torre lo ataque.

Si Fito va a pasar por delante de una torre que está atacando, él tiene que esperar (parado en una posición menor o igual que la de la torre) que esta termine de atacar para poder pasar sin que lo golpee.

El héroe de Fito avanza una posición en un segundo.

Inicialmente todas las torres comienzan a atacar y a partir de ese momento comienza su ciclo de ataque. El héroe de Fito se encuentra en la posición 0 y la base está en la posición L.

Usted debe ayudar a Fito a calcular la menor cantidad de tiempo en la que su héroe puede regresar a la base.

Input

La primera línea contiene dos enteros 1<=N<=100, 1<=L<=1000.  La cantidad de torres y la posición de la base.

Cada una de las siguientes N líneas contiene 3 enteros D, T y S (1<=D < L, 1<= T <= 100,1 <= S <= 100) describiendo cada torre. D es la posición en la que se encuentra la torre, T es el tiempo en segundos que dura el ataque de la torre y S el tiempo en segundos que la torre está sin atacar.

Las torres van a estar ordenadas en orden creciente de D y no habrá dos torres en la misma posición.

Output

El tiempo en segundos que el héroe de Fito necesita para llegar a la base.

Sample test(s)

Input
2 10 3 5 5 5 2 2
Output
12