Совсем недавно Петя сдал выпускные экзамены и уже спланировал свою будущую карьеру IT-специалиста. Самое первое, что ему предстоит сделать по плану - за следующие два года устроиться в какую-нибудь IT-компанию, а для этого нужно пройти собеседования.
Петя нашел N компаний. Для i-й компании он узнал номер месяца mi (месяцы нумеруются с нуля), когда в ней будут проводиться собеседованию на интересующую Петю должность, величину заработной платы pi и необходимый навык прохождения собеседований ci. На собеседование в каждую компанию можно прийти в любой день, указанного месяца, в любое время, но только один раз. Можно считать, что длительность собеседования достаточно мала, чтобы Петя мог посетить их все.
Изначально Петя обладает навыком прохождения собеседования S = 0. После посещения (успешного или нет) любого собеседования его навык увеличивается на K единиц.
Петя может успешно пройти собеседование в i-й компании, только если ci ≤ S. После успешного прохождения собеседования, Петя может начать работать с зарплатой pi со следующего месяца, либо отказаться. В первом случае он больше не будет проходить никаких других собеседований. Даже если у Пети не достаточно опыта для того, чтобы пройти собеседование, он все равно может получить за него опыт.
Петя хочет заработать как можно больше за следующие два года. Помогите ему оптимально распланировать график посещения собеседований.
В первой строке - два положительных числа N, K (1 ≤ N ≤ 105, 1 ≤ K ≤ 104)
Далее в N строках содержится по три целых числа mi, pi, ci (0 ≤ mi < 24, 0 ≤ pi ≤ 107, 0 ≤ ci ≤ 109)
Выведите одно целое число - максимальное количество денег, которое получит Петя, если будет действовать оптимально.
1 1
0 10 0
230
3 5
0 10 0
2 40 7
3 25 7
500
В первом примере Петя успешно проходит собеседование в 0 месяце и работает оставшиеся от двух лет 23 месяца (с 1го по 23й).
Во втором примере Петя посещает первые два собеседования, в 3 месяце успешно проходит собеседование и работает оставшиеся 20 месяцев (с 4го по 23й).
| Name |
|---|


