Олимпиадный тренинг

Задача . D. Дом для червя


Червь по имени Арни уже в который раз догрыз свой дом-яблоко и решил переехать. Он уже давно для себя определил план расположения комнат и коридоров, их соединяющих; пронумеровал все комнаты от 1 до n. Все коридоры двусторонние.

Арни хочет, чтобы новый дом выглядел абсолютно также как и предыдущий, то есть в нём должно быть ровно n комнат и, если в старом доме существовал коридор из комнаты i в комнату j, то этот коридор обязательно должен быть построен и в новом доме.

Известно, что во время постройки своего дома Арни начинает грызть яблоко из некоторой комнаты и остановится лишь тогда, когда прогрызёт все коридоры и вернётся в начальную комнату. Также известно, Арни грызёт, не прерываясь, то есть пока он не закончит строительство, в каждый момент времени он занят прогрызанием нового коридора, по уже построенным коридорам Арни не ходит.

Однако прогрызать коридоры в одном и том же порядке при каждом переезде — занятие скучное. Поэтому он, зная порядок построения коридоров в предыдущем доме, хочет прогрызть коридоры в другом порядке. Этот порядок представляет собой список комнат в процессе их посещения. Новый список должен быть лексикографически наименьший, но строго больше предыдущего. Помогите червю.

Входные данные

В первой строке дано два целых числа n и m (3 ≤ n ≤ 100, 3 ≤ m ≤ 2000) — количество комнат и коридоров в доме Арни соответственно. В следующей строке записано m + 1 натуральных чисел, не превышающих n: описание старого маршрута Арни в виде списка комнат, которые он посещал во время прогрызания. Гарантируется, что последнее число в этом списке совпадает с первым.

Первая комната, описанная во второй строке входного файла — это главный вход, поэтому Арни всегда должен начинать грызть именно с неё.

Вы можете предполагать, что ни одна комната не соединена сама с собой коридором, и если существует коридор между некоторой парой комнат, то только один. В то же время, могут существовать изолированные комнаты, не соединённые коридорами вообще.

Выходные данные

Выведите m + 1 натуральных чисел, не превышающих n: описание нового маршрута Арни, в соответствии с которым он должен прогрызать свой новый дом. Если такого маршрута не существует, выведите No solution. В вашем ответе первое число должно совпадать с m + 1-ым и являться главным входом.


Примеры
Входные данныеВыходные данные
1 3 3
1 2 3 1
1 3 2 1
2 3 3
1 3 2 1
No solution

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя