Polycarp has to solve exactly n problems to improve his programming skill before an important programming competition. But this competition will be held very soon, most precisely, it will start in k days. It means that Polycarp has exactly k days for training!

Polycarp doesn't want to procrastinate, so he wants to solve at least one problem during each of k days. He also doesn't want to overwork, so if he solves x problems during some day, he should solve no more than 2x problems during the next day. And, at last, he wants to improve his skill, so if he solves x problems during some day, he should solve at least x+1 problem during the next day.

More formally: let [a_1, a_2, ..., a_k] be the array of numbers of problems solved by Polycarp. The i-th element of this array is the number of problems Polycarp solves during the i-th day of his training. Then the following conditions must be satisfied: 

  * sum of all a_i for i from 1 to k should be n; 
  * a_i should be greater than zero for each i from 1 to k; 
  * the condition a_i < a_{i + 1} ≤ 2 a_i should be satisfied for each i from 1 to k-1. 



Your problem is to find any array a of length k satisfying the conditions above or say that it is impossible to do it.

Input

The first line of the input contains two integers n and k (1 ≤ n ≤ 10^9, 1 ≤ k ≤ 10^5) — the number of problems Polycarp wants to solve and the number of days Polycarp wants to train.

Output

If it is impossible to find any array a of length k satisfying Polycarp's rules of training, print "NO" in the first line.

Otherwise print "YES" in the first line, then print k integers a_1, a_2, ..., a_k in the second line, where a_i should be the number of problems Polycarp should solve during the i-th day. If there are multiple answers, you can print any.

Examples

Input


26 6


Output


YES
1 2 4 5 6 8 


Input


8 3


Output


NO


Input


1 1


Output


YES
1 


Input


9 4


Output


NO
from sys import stdin
from collections import defaultdict as dd
from collections import deque as dq
import itertools as it
from math import sqrt, log, log2, ceil, floor
from fractions import Fraction

n, k = map(int, input().split())
l = floor((2*n + k - k**2)/(2*k))
rem = abs(n - ((l + l + k - 1)*(k))//2)
ans = list(range(l, l+k))

ind = k-1
while rem!=0 and ind > 0:
    prev = ans[ind-1]
    if rem > 2*prev - ans[ind]:
        rem -= 2*prev - ans[ind]
        ans[ind] = 2*prev
    else:
        ans[ind] += rem
        rem = 0

    ind -= 1


if rem!=0:
    print('NO')

else:
    for i in range(k-1):
        if (ans[i] < ans[i+1] <= 2*ans[i]) and (ans[i] >= 1):
            continue
        else:
            print('NO')
            exit()

    print('YES')
    print(*ans)