C. Password Lock
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

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

Замок состоит из последовательности ячеек, на каждой из которых написано целое число. Ячейки можно менять местами, при правильной перестановке замок открывается. Замок откроется при следующем условии: для любой пары соседних ячеек сумма чисел на них не делится на $$$k$$$.

Вы узнали модель этого замка, и, конечно же, решили попробовать его открыть. По числам на ячейках и числу $$$k$$$ найдите любую последовательность ячеек, которая откроет замок.

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

Первая строка входных данных содержит два целых числа $$$n$$$ и $$$k$$$ ($$$1 \le n \le 10^5$$$, $$$1 \le k \le 10^9$$$) — количество ячеек в замке и число $$$k$$$ из условия.

Вторая строка входных данных содержит $$$n$$$ целых чисел $$$a_i$$$ ($$$1 \le a_i \le 10^9$$$) — числа, изначально написанные на ячейках замка.

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

Если подходящей последовательности ячеек не существует, выведите «NO» (без кавычек, регистр не важен) в первой строке.

Если подходящая последовательность ячеек существует, выведите «YES» (без кавычек, регистр не важен) в первой строке. Во второй строке выведите $$$n$$$ целых чисел — саму последовательность.

Система оценки
ПодзадачаБаллыОграничения
$$$1$$$$$$8$$$$$$n \le 8$$$
$$$2$$$$$$8$$$$$$k = 2$$$
$$$3$$$$$$8$$$$$$k = 3$$$
$$$4$$$$$$8$$$$$$n = k$$$, числа $$$a_i$$$ различны и лежат от $$$1$$$ до $$$n$$$
$$$5$$$$$$25$$$$$$k$$$ — нечетное
$$$6$$$$$$43$$$Без дополнительных ограничений
Примеры
Входные данные
3 4
1 3 2
Выходные данные
YES
1 2 3 
Входные данные
5 4
1 2 2 2 4
Выходные данные
YES
2 4 2 1 2