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

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

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

Як вже усім відомо, Берляндія складається з \textbf{N} міст. Міста пронумеровані від \textbf{1} до \textbf{N}. Вони з'єднані \textbf{N-1 }одностороніми дорогами по порядку від останнього до першого: \textbf{N}-те місто з'єднано з \textbf{(N-1)}-им, ..., \textbf{2}-ге з \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}.
Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB
Автор Mike Mirzayanov
Джерело Saratov SU Contest, Thursday, Petrozavodsk Summer Session, August 24, 2006