В городе Крайняя Туле открывается дамский магазин. Для подготовки к открытию дамского магазина было куплено n пакетов. Каждый пакет характеризуется суммарным весом предметов ai, которые можно туда положить. Довольно странно, но в такие пакеты нельзя положить набор предметов, суммарный вес которых строго меньше ai. Однако веса товаров, которые будут продаваться в магазине еще не определены. Их-то и требуется сейчас определить.
Нужно найти набор весов товаров p1, p2, ..., pk (1 ≤ p1 < p2 < ... < pk), такой, что:
- Любой пакет будет востребован. То есть, для любого i (1 ≤ i ≤ n) найдется набор товаров, такой, что их суммарный вес равен ai. Считается, что имеется неограниченное количество товара каждого веса. А в пакет можно класть несколько товаров одного веса.
- Для любого набора товаров с суммарным весом, меньшим либо равным m, существует пакет, в который можно положить этот набор. Аналогично, в набор товаров может входить несколько товаров одинакового веса.
- Из всех наборов весов товаров, удовлетворяющих пунктам 1 и 2, нужно найти минимальный набор по количеству весов. Другими словами, значение k должно быть как можно меньше.
Найдите и выведите любой подходящий набор.
Выходные данные
Выведите «NO» (без кавычек) в первой строке, если не существует набора pi, удовлетворяющего условиям.
Иначе в первой строке выведите «YES» (без кавычек), во второй — целое число k (количество чисел в минимальном по количеству элементов подходящем наборе), в третьей строке выведите через пробел k целых чисел p1, p2, ..., pk (1 ≤ p1 < p2 < ... < pk). Если решений несколько — выведите любое.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
6 10 5 6 7 8 9 10
|
YES
5
5 6 7 8 9
|
|
2
|
1 10 1
|
NO
|
|
3
|
1 10 6
|
YES
1
6
|