← Home
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	var n, k int
	fmt.Scan(&n, &k)

	count := 0
	freq := make([]int, 30)
	for i := 0; i < 30; i++ {
		if (n>>i)&1 == 1 {
			freq[i]++
			count++
		}
	}

	if k < count || k > n {
		fmt.Println("NO")
		return
	}

	fmt.Println("YES")
	for i := 29; i >= 1; i-- {
		for freq[i] > 0 && count < k {
			freq[i]--
			freq[i-1] += 2
			count++
		}
	}

	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()
	for i := 0; i < 30; i++ {
		for freq[i] > 0 {
			fmt.Fprintf(out, "%d ", 1<<i)
			freq[i]--
		}
	}
	fmt.Fprintln(out)
}