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

Сервери

Сервери

Корпорація має \textbf{N} серверів, які занумеровано натуральними числами від \textbf{1} до \textbf{N}. Кожен сервер займає одну полицю в серверній стійці. Всього в стійці \textbf{N} полиць, і їх також занумеровано натуральними числами від \textbf{1} до \textbf{N}. У зв’язку з заміною обладнання виникла потреба переставити сервери. Проблему ускладнено тим, що деякі пари серверів потрібно з’єднати кабелем напрямý. Довжина кабелю, що з’єднує пару серверів, дорівнює різниці номерів полиць, на яких розташовані ці сервери. Допоможіть розмістити сервери так, щоб сумарна довжина затраченого кабелю була найменшою. Визначте, яку найменшу сумарну довжину кабелю потрібно витратити для роз­ташу­вання серверів у серверній стійці та одне з можливих таких розташувань. \InputFile Перший рядок містить натуральне число \textbf{N} (\textbf{2} ≤ \textbf{N} ≤ \textbf{20}). Другий рядок містить кількість пар \textbf{M} серверів, що потрібно з’єднати напряму. Наступні \textbf{M} рядків містять по одній парі різних натуральних чисел --- номери серверів, що потрібно з’єднати напрямý. Кожна така пара зустрічається у переліку лише один раз. \OutputFile Перший рядок повинен містити най­меншу можливу сумарну довжину кабелю. Другий рядок повинен містити перестановку чисел \textbf{1}, \textbf{2}, …, \textbf{N}, що відповідає оптимальному розташуванню серверів: на \textbf{j}-му місці має стояти номер сервера, який потрібно встановити на \textbf{j}-ту полицю.
Ліміт часу 1 секунда
Ліміт використання пам'яті 32 MiB
Вхідні дані #1
5
3
1 2
2 3
4 5
Вихідні дані #1
3
5 4 1 2 3