\begin{problem}{Минимальное покрытие}{cover.in}{cover.out}{1 секунда}{64 мегабайта}

На прямой задано некоторое множество отрезков  с целочисленными координатами концов 
$[L_i, R_i]$. Выберите среди данного множества подмножество отрезков, целиком 
покрывающее отрезок $[0, M]$, ($M$~--- натуральное число), содержащее наименьшее
число отрезков.

\InputFile

В первой строке указана константа $M$ $(1 \leqslant M \leqslant 5\,000)$. В 
каждой последующей строке записана пара чисел $L_i$ и $R_i$ 
$(|L_i|, |R_i| \leqslant 50\,000)$, задающая координаты левого и правого концов отрезков.
Список завершается  парой нулей. Общее число отрезков не превышает $100\,000$.

\OutputFile
В первой строке выходного файла выведите минимальное число отрезков,
необходимое для покрытия отрезка $[0, M]$.
Далее выведите список покрывающего подмножества, упорядоченный по 
возрастанию координат левых концов отрезков. Список отрезков выводится в том же 
формате, что и во входe. Завершающие два нуля выводить не нужно.

Если покрытие отрезка $[0, M]$ исходным множеством отрезков $[L_i, R_i]$ 
невозможно, то следует вывести единственную фразу ``\verb"No solution"''.

\Examples

\begin{example}
\exmp{
1
-1 0
-5 -3
2 5
0 0
}{
No solution
}%
\exmp{
1
-1 0
0 1
0 0
}{
1
0 1
}%
\end{example}

\end{problem}
