На прямой задано некоторое множество отрезков с целочисленными координатами концов \([L_i, R_i]\). Выберите среди данного множества подмножество отрезков, целиком покрывающее отрезок \([0, M]\), (M
— натуральное число), содержащее наименьшее число отрезков.
Входные данные
В первой строке указана константа M
(\(1<=M<=5000\)). В каждой последующей строке записана пара чисел Li
и Ri
(\(|L_i|,|R_i| < 50000\)), задающая координаты левого и правого концов отрезков. Список завершается парой нулей. Общее число отрезков не превышает 100 000.
Выходные данные
В первой строке выходного файла выведите минимальное число отрезков, необходимое для покрытия отрезка
\([0; M]\). Далее выведите список покрывающего подмножества, упорядоченный по возрастанию координат левых концов отрезков. Список отрезков выводится в том же формате, что и во входe. Завершающие два нуля выводить не нужно. Если покрытие отрезка
\([0; M]\) исходным множеством отрезков
\([L_i, R_i]\) невозможно, то следует вывести единственную фразу “
No solution
”.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1
-1 0
-5 -3
2 5
0 0
|
No solution |
2 |
1
-1 0
0 1
0 0
|
1
0 1 |