D. Восстановление BST
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Хомяк Дима обожает грызть различные объекты, среди которых клетки, коробки, авторы плохих задач и даже деревья!

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

Помогите Диме восстановить любое подходящее двоичное дерево поиска или скажите, что это невозможно. Определение и свойства двоичного дерева поиска можно найти здесь.

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

В первой строке задано количество вершин $$$n$$$ ($$$2 \le n \le 700$$$).

В следующей строке через пробел следуют $$$n$$$ различных чисел $$$a_i$$$ ($$$2 \le a_i \le 10^9$$$) — значения в вершинах в отсортированном порядке.

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

Если можно собрать двоичное дерево поиска, такое что наибольший общий делитель любых двух вершин соединённых ребром больше $$$1$$$, выведите «Yes» (без кавычек).

В противном случае выведите «No» (без кавычек).

Примеры
Входные данные
6
3 6 9 18 36 108
Выходные данные
Yes
Входные данные
2
7 17
Выходные данные
No
Входные данные
9
4 8 10 12 15 18 33 44 81
Выходные данные
Yes
Примечание

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

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