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:
#n as exactly sum of k powers of 2, not distinct 

n,k=input().split();
n=int(n);
k=int(k);

#bitmasking, greedy 

binary=str((bin(n))[2:]);
#print(binary)
ctr=0;
ans=[];
for i in range(len(binary)):
	if(binary[i]=='1'):
		ctr+=1;
		ans.append(2**(len(binary)-i-1));
	#print(i)
#print(ans);
ans.sort(reverse=True);

if(k>n):
	print("NO");

elif(ctr==k):
	print("YES");
	ans.sort();
	for i in ans:
		print(i);

elif(ctr>k):
	print("NO"); 

else:
	i=0;
	while(len(ans)<k):
		if(ans[i]!=1):
			ans[i]=(int(ans[i]/2));
			ans.append((ans[i]));
		else:
			i+=1;
			#shouldnt exceed len(ans)

		#print(len(ans))


	if(len(ans)==k):
		print("YES")
		ans.sort();
		for i in ans:
			print(i);