Поликарп хочет решить ровно \(n\) задач, чтобы прокачать свое умение программировать перед важным соревнованием по программированию. Но это соревнование начнется очень скоро, более точно, оно начнется через \(k\) дней. Это означает, что у Поликарпа есть ровно \(k\) дней на тренировки!
Поликарп не хочет прокрастинировать, поэтому он хочет решать хотя бы по одной задаче в течение каждого из \(k\) дней. Он также не хочет переутомляться, поэтому если он решает \(x\) задач в течение какого-то дня, он должен решать не более, чем \(2x\) задач в течение следующего дня. И, наконец, он хочет прокачивать свое умение программировать, поэтому если он решает \(x\) задач в течение какого-либо дня, он должен решать хотя бы \(x+1\) задачу в течение следующего дня.
Более формально: пусть \([a_1, a_2, \dots, a_k]\) — массив количеств решенных Поликарпом задач. \(i\)-й элемент этого массива равен количеству задач, которые Поликарп решает в течение \(i\)-го дня его тренировок. Тогда должны быть соблюдены следующие условия:
- сумма всех \(a_i\) для всех \(i\) от \(1\) до \(k\) должна быть равна \(n\);
- \(a_i\) должно быть больше нуля для всех \(i\) от \(1\) до \(k\);
- должно выполняться условие \(a_i < a_{i + 1} \le 2 a_i\) для всех \(i\) от \(1\) до \(k-1\).
Ваша задача — найти любой массив \(a\) длины \(k\), удовлетворяющий условиям выше, или сказать, что это невозможно сделать.
Выходные данные
Если невозможно найти никакой массив \(a\) длины \(k\), удовлетворяющий правилам тренировок Поликарпа, выведите «NO» в первой строке.
Иначе выведите «YES» в первой строке, затем выведите \(k\) целых чисел \(a_1, a_2, \dots, a_k\) во второй строке, где \(a_i\) должно быть равно количеству задач, которые Поликарп должен решать в течение \(i\)-го дня. Если существует несколько возможных ответов, вы можете вывести любой из них.