ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила

2107. Oppa Funcan Style

Ограничение времени: 2.0 секунды
Ограничение памяти: 150 МБ
Наверняка вы видели безумные клипы южнокорейского рэпера PSY, такие как «Gangnam Style», «Gentleman» и «Daddy». Но вряд ли вы знаете, что прямо сейчас PSY записывает новый клип «Oppa Funcan Style»!
Дело происходит так: на площадке есть n платформ, пронумерованных целыми числами от 1 до n, на i-й платформе стоит танцор с номером i. Далее, каждую секунду все танцоры, стоявшие на платформе с номером i, перепрыгивают на платформу с номером f(i). Правило перемещения f выбирается заранее и не меняется на протяжении клипа.
Продолжительность клипа составляет k секунд, но хочется больше! Если по истечении k секунд все танцоры окажутся на своих исходных позициях (то есть i-й танцор будет стоять на платформе с номером i), то клип можно будет зациклить и собрать ещё больше «лайков».
Правило перемещения f уже частично определено в связи с техническими ограничениями, зато неопределённые значения f(i) могут быть любыми (за исключением того, что платформа с таким номером должна существовать).
Помогите PSY снова взорвать интернет, подобрав неопределённые значения f(i) таким образом, чтобы через k секунд танцоры возвращались на исходные позиции.

Исходные данные

В первой строке даны целые числа n и k — количество танцоров в клипе и длительность клипа в секундах (1 ≤ n ≤ 35; 1 ≤ k ≤ 109).
Во второй строке дано n целых чисел f(i) — правило перемещения для платформ с номерами от 1 до n (0 ≤ f(i) ≤ n). Если f(i) = 0, то правило для i-й платформы не определено.

Результат

В первой строке выведите «Yes», если можно подобрать неопределённые значения правила должным образом, а иначе выведите «No». В случае положительного ответа во второй строке выведите искомую функцию в таком же формате, как во входных данных (но теперь все значения должны быть определены). Если задача имеет несколько решений, выведите любое из них.

Примеры

исходные данныерезультат
3 4
1 2 3
Yes
1 2 3 
3 4
0 0 0
Yes
1 2 3 
3 1
2 2 2
No
2 666
2 0
Yes
2 1 
2 777
2 0
No
Автор задачи: Алексей Данилюк
Источник задачи: Чемпионат УрФУ среди юниоров 2016