Технокубок 2016 - Отборочный Раунд 2
E
Автобус
Codeforces
2100
原题
← D→
翻译中…

Вдоль дороги стоят $*n*$ путешественников. Дорога представляет собой прямую, размерами путешественников можно пренебречь, считая их точками.

翻译中…

Водитель автобуса Василий, благодаря мобильному приложению, знает для каждого путешественника точку $*x*_{*i*}$, в которой тот стоит. Кроме того, он знает расстояние $*d*_{*i*}$, которое $*i*$-й путешественник хочет проехать на автобусе. Таким образом, $*i*$-й путешественник планирует выйти из автобуса в точке $*x*_{*i*} + *d*_{*i*}$. Теперь Василий хочет решить, кого из путешественников он подвезёт, а кого оставит пылиться у дороги.

翻译中…

Василий решил, что сегодня он должен хорошо заработать, поэтому решил перевезти в точности $*a*$ путешественников. В автопарке есть автобусы любых видов. Чем больше мест в автобусе, тем дороже стоит его аренда.

翻译中…

Помогите Василию определить минимальное количество пассажирских мест в автобусе, которых будет достаточно для перевозки ровно $*a*$ путешественников. Ни в какой момент времени в автобусе не может быть путешественников больше, чем количество пассажирских мест в автобусе. Василий сам может решить какое конкретно подмножество из $*a*$ путешественников он перевезёт на автобусе.

翻译中…

Считайте, что автобус всегда едет слева направо (от меньших координат к большим) и начинает свой путь левее самого левостоящего путешественника. Если в одной точке какой-то путешественник должен выйти из автобуса, а другой войти, считайте, что сначала произойдет выход одного путешественника из автобуса, а затем другой путешественник сможет зайти в автобус.

翻译中…

Input

翻译中…

В первой строке входных данных следует два целых положительных числа $*n*$ и $*a*$ ($1 ≤ *a* ≤ *n* ≤ 200 000$) — количество путешественников, стоящих вдоль дороги, и минимальное количество путешественников, которых Василий хочет подвезти.

翻译中…

В каждой из следующих $*n*$ строк содержится по два целых числа $*x*_{*i*}$ и $*d*_{*i*}$ ($1 ≤ *x*_{*i*}, *d*_{*i*} ≤ 10^{9}$) — координата, в которой находится $*i*$-й путешественник, а также расстояние, на которое он хочет переместиться на автобусе. Координаты путешественников заданы в произвольном порядке. В одной точке могут находиться несколько путешественников.

翻译中…

Output

翻译中…

Сначала выведите одно целое число — минимальное количество пассажирских мест в автобусе, которых будет достаточно для перевозки хотя бы $*a*$ путешественников.

翻译中…

Затем выведите $*a*$ целых чисел — номера путешественников, которых подвезёт Василий. Путешественники нумеруются, начиная с единицы, в том порядке, в котором заданы во входных данных. Номера можно выводить в произвольном порядке. Если ответов несколько, разрешается вывести любой из них.

翻译中…

Note

翻译中…

В первом тестовом примере достаточно одноместного автобуса. К примеру, Василий может подвезти третьего и первого путешественников, либо второго и первого путешественников.

翻译中…

样例

Input #1
3 2
8 9
3 5
1 3
Output #1
1
1 3
Входные данныеCopy Выходные данныеCopy
Input #2
5 4
20 40
10 10
15 5
5 15
20 30
Output #2
2
4 2 5 1
Входные данныеCopy Выходные данныеCopy
标签
二分
数据结构
贪心
排序

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。