#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define fp(i,x,n) for(ll i=x;i<n;i++)
#define fn(i,x,n) for(ll i=x;i>=n;i--)
#define boost ios_base::sync_with_stdio(false);cin.tie(NULL);
#define f first
#define s second

ll ceil(ll x, ll y)
{
    if(!(x % y))
        return x/y;
    return (x/y)+1;
}

int flag = 0;

vector<ll> V;

void rec(ll x, ll y)
{

    if(y > x || y==0 && x > 0)
        {
            flag = 1;
            return;
        }
    if(y == 0)
        return;
            
    ll c = 1;
    ll temp;
    
    while(1)    
        {
            temp = pow(2,(ll)log2(x))/c;
            if(x-temp >= (y-1))
                break;
            else
                c*=2;
        }
        
    V.push_back(temp);
    rec(x-temp,y-1);
}

int main()
{
    string s;
    
    ll k,n;
    
    cin >> n >> k;
    
    ll n1 = n;
    
    if(n % 2)
    {
        k--;
        n--;
    }
    
    if(k > n)
        cout << "NO" << endl;
    else
    {
        rec(n,k);
        if(flag)
            cout << "NO" << endl;
        else
            {
                cout << "YES" << endl;
                
                if(n1%2)
                    cout << 1 << " ";
                fn(i,V.size()-1,0)
                    cout << V[i] << " ";
                
            }
    }
}