Вы храните в базе данных массив длины \(m\). Чтобы обезопасить данные от случайного повреждения, база данных хранит не одну, а \(n\) физических копий хранимой информации.
К сожалению, недавно в базе данных произошла масштабная авария, которая потенциально изменила информацию в каждой копии.
Предполагается, что инцидент поменял не более двух элементов в каждой копии. Вам нужно восстановить исходный массив из текущего состояния базы данных.
Если существует несколько способов восстановления, найдите любой. Если нет ни одного массива, отличающегося от каждой копии не более чем в двух позициях, определите это тоже.
Выходные данные
Если можно восстановить массив, который мог бы представлять исходную информацию, то выведите в первой строке слово «Yes», и во второй строке сам массив из ровно \(m\) чисел от \(1\) до \(10^9\).
Если возможных ответов несколько, то выведите любой.
Если ни одного ответа нет, то выведите в единственной строке слово «No».
Примечание
В первом примере массив \([1, 10, 1, 100]\) отличается от первой и второй физических копий ровно в одной позиции, от третьей физической копии ровно в двух позициях.
Во втором примере массив \([1, 1, 1, 1, 1, 1, 1]\) равен первой физической копии и отличается от каждой из остальных девяти физических копий не более чем в двух позициях.
В третьем примере невозможно найти какой-нибудь массив, который отличается не более чем в двух позициях от обеих физических копий после аварии.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
3 4 1 10 10 100 1 1 1 100 10 100 1 100
|
Yes
1 10 1 100
|
|
2
|
10 7 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 2 2 1 1 1 1 2 2 1 1 1 1 2 2 1 1 1 1 2 2 1 1 1 1 2 2 1 1 1 1 2 2 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1
|
Yes
1 1 1 1 1 1 1
|
|
3
|
2 5 2 2 1 1 1 1 1 2 2 2
|
No
|