eolymp
bolt
Try our new interface for solving problems
Problems

Дороги, или туда и обратно

Дороги, или туда и обратно

Как уже всем известно, Берляндия состоит из \textbf{N} городов. Города пронумерованы от \textbf{1} до \textbf{N}. Они соединены \textbf{N-1 }односторонними дорогами по порядку от последнего к первому: \textbf{N}-ый город соединен с \textbf{(N-1)}-ым, ..., \textbf{2}-ой c \textbf{1}-ым. Однако такое устройство не устраивает Президента. Он считает, что в его стране необходимо, чтобы из любого города можно было попасть в любой другой, двигаясь только по дорогам. Он распорядился совету министров подготовить план, который состоит из такого набора односторонних дорог, что после их добавления в дорожную сеть она станет удовлетворять требованию Президента. Так как Президент бережлив, он примет не любой план. Президент отклонит план, если из него можно удалить одну или более дорог, не нарушив основного свойства плана. Также Президент отклонит план, если пару дорог в нем (\textbf{a}, \textbf{b}) и (\textbf{b}, \textbf{c}) можно заменить одной - (\textbf{a}, \textbf{c}). Президент не любит беспорядка, поэтому дороги в плане должны быть упорядочены лексикографически (т.е. пары упорядочиваются сначала по первому члену, а при равенстве - по второму). Например, дорога (\textbf{11}, \textbf{3}) лексикографически больше дороги (\textbf{9}, \textbf{3}), но меньше дороги (\textbf{11}, \textbf{11}). Так как Президенту в этом году исполняется \textbf{K} лет, совет министров решил представить план, который является \textbf{K}-ым в лексикографическом порядке среди всех планов, которые он не отклонит. Планы сравниваются лексикографически как последовательности дорог. Например, план \{(\textbf{1}, \textbf{10}), (\textbf{7}, \textbf{20})\} лексикографически меньше плана \{(\textbf{1}, \textbf{20})\}, но больше плана \{(\textbf{1}, \textbf{10}), (\textbf{7}, \textbf{9}), (\textbf{8}, \textbf{15})\} (заметим, что некоторые планы из данного примера не соответствуют требованиям Президента, а приведены лишь для пояснения порядка сравнения). Дело за малым. Требуется ваша помощь. \InputFile В первой строке записаны два целых числа \textbf{N}, \textbf{K} (\textbf{2} ≤ \textbf{N} ≤ \textbf{50}, \textbf{1} ≤ \textbf{K} ≤ \textbf{10^9}). \OutputFile В первую строку выведите \textbf{Q} - количество дорог в искомом плане. Далее в \textbf{Q} строк выведите сами дороги в любимом Президентом лексикографическом порядке. Дороги следует выводить в виде пар целых чисел. Если решения не существует, выведите \textbf{-1}.
Time limit 1 second
Memory limit 64 MiB
Author Mike Mirzayanov
Source Saratov SU Contest, Thursday, Petrozavodsk Summer Session, August 24, 2006