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 PYTHON3):

Solution:
import math

def modi(a,m) : 
	return pow(a,m-2,m)


if __name__ == '__main__':

	n, k = [int (x) for x  in input().split()]
	s = bin(n)[2:]
	c = s.count('1')

	if c > k  :
		print ("NO")
	else :
		val = 1
		arr = []
		for i in range(len(s)) : 
			if s[len(s)-i-1]=='1' : 
				arr.append(val)
			val*=2

		d = {}
		for i in arr : 
			d[i]=1
		# print (d)
		val = len (d)
		ans  = True
		while (val<k) :
			temp = max(d.keys())
			if temp ==1 :
				ans  = False
				break
			d[temp]-=1
			if d[temp]==0 :
				del d[temp]
			if temp//2 not in d :
				d[temp//2]=0 
			d[temp//2]+=2
			val+=1
		# print (d)
		if ans : 
			print ("YES")
			arr = []
			for i in d : 
				for j in range(d[i]) : 
					arr.append(i)
			print (*arr)
		else :
			print ("NO")