Problem: A positive integer x is called a power of two if it can be represented as x = 2^y, where y is a non-negative integer. So, the powers of two are 1, 2, 4, 8, 16, ....

You are given two positive integers n and k. Your task is to represent n as the sum of exactly k powers of two.

Input

The only line of the input contains two integers n and k (1 ≤ n ≤ 10^9, 1 ≤ k ≤ 2 ⋅ 10^5).

Output

If it is impossible to represent n as the sum of k powers of two, print NO.

Otherwise, print YES, and then print k positive integers b_1, b_2, ..., b_k such that each of b_i is a power of two, and ∑ _{i = 1}^{k} b_i = n. If there are multiple answers, you may print any of them.

Examples

Input


9 4


Output


YES
1 2 2 4 


Input


8 1


Output


YES
8 


Input


5 1


Output


NO


Input


3 7


Output


NO

Solution (in PYTHON):

Solution:
n,k = map(int, raw_input().split())

p = "{0:0b}".format(n)

tatti = 0
p = list(p)

j = []

if p.count('1') > k or n < k:

	print "NO"



else:

	def d(j):

		print "YES"

		i = 0

		while i < len(j):

			if j[i] != 0:

				print j[i],

			i = i + 1
			

	i = 0
	
	do = 0

	p = p[::-1]

	while i < len(p):

		if p[i] == '1':

			j.append(2**i)
			
			do = do + 1
			

		else:

			j.append(0)

		i = i + 1


	if do == k:

		d(j)

	if do < k:

		i = 1

		c = 1

		while do < k:

	        	if j[i] > 1:

				j.insert(i,(j[i]/2))

				j[i+1] = j[i+1]/2

				p.insert(i,'8')
				
				do = do + 1

	        	else:
				i = i + 1

			if i >= len(j):
	
				print "NO"
				tatti = 1
				break

		if do > k:

			print "NO"

		else:
			if tatti != 1:
				d(j)