Наверняка вы видели безумные клипы южнокорейского рэпера 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