B. Странный Порядок
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Как часто вам приходится упорядочивать какие-либо объекты? Сортировать числа? Или, может быть, строки? В этой задаче вам предстоит упорядочить числа согласно довольно необычному критерию.

У вас имеется $$$N$$$ целых положительных чисел $$$a_1, a_2, \ldots, a_N$$$. От вас требуется переупорядочить данные числа таким образом, чтобы для любых $$$a_i$$$ и $$$a_{i + 1}$$$ были выполнены условия:

  1. Пусть $$$c_1, c_2, \ldots, c_k$$$ — всевозможные положительные делители числа $$$a_i$$$, причем $$$c_i \lt c_{i + 1}$$$. Аналогично $$$d_1, d_2, \ldots, d_l$$$ — делители числа $$$a_{i + 1}$$$. Должно быть верно, что либо $$$k \lt l$$$, либо $$$k = l$$$, и при этом для любого $$$j$$$ верно, что $$$c_j \leq d_j$$$.
  2. $$$a_i$$$ AND $$$a_{i + 1} = a_i$$$, где AND — операция побитового «И».
Входные данные

В первой строке записано целое число $$$N$$$ ($$$1 \leq N \leq 10^6$$$) — количество элементов, которые необходимо упорядочить.

Во второй строке через пробел записаны $$$N$$$ положительных целых чисел $$$a_1, a_2, \ldots, a_N$$$ ($$$1 \leq a_i \leq 10^{12}$$$).

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

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

В случае, если упорядочить числа возможно, во второй строке выведите $$$N$$$ исходных чисел в нужном порядке.

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