eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Автобус

Автобус

Службовий автобус здійснює один рейс по встановленому маршруту і у випадку наявності вільних місць підбирає робітників, які чекають на зупинках, і відвозить їх на завод. Автобус також може чекати на зупинці робітників, які ще не прийшли. Відомий час приходу кожного робітника на свою зупинку і час проїзду автобуса від кожної зупинки до наступної. Автобус приходить на першу зупинку у нульовий момент часу. Тривалість посадки робітників в автобус вважаються нульовою.

Написати програму, яка визначить мінімальний час, за який автобус привезе максимально можливу кількість робітників.

Вхідні дані

Перший рядок містить кількість зупинок N *та кількість місць у автобусі M. Кожен i-й рядок з наступних *N *рядків містить ціле число - час руху від зупинки *і *до зупинки *i + 1 *(N + 1 *-ша зупинка - завод), кількість робітників K, які прийдуть на i-ту зупинку, та час приходу кожного робітника на цю зупинку у порядку приходу. Відомо, що *1 **M *≤ 2000, *1 *N, *K *≤ 200000.

Вихідні дані

Вивести мінімальний час, необхідний для перевезення максимальної кількості робітників.

Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
3 5
1 2 0 1
1 1 2
1 4 0 2 3 4
Вихідні дані #1
4
Джерело 2000 XIII Всеукраїнська олімпіада з інформатики, Київ, Березень 27 - Квітень 1, тур 1