#include <bits/stdc++.h>   using namespace std;   const int maxn = 2e5 + 7;   vector<int> cur;   void split(int x, int p) {     if (p == 1) {       cout << x <<    ;       return;     }     cout << x - 1 <<    ;     split(x - 1, p - 1);   }   int main() {     ios::sync_with_stdio(false);     cin.tie(0);     ;     long long n, k;     cin >> n >> k;     string s =   ;     while (n > 0) {       s += (char)((n % 2) +  0 );       n /= 2;     }     for (int i = ((int)s.size() - 62); i < (int)s.size(); i++) {       long long cnt = 0;       for (int j = 0; j <= i; j++) {         cnt += (s[j] ==  1 );       }       bool ok = true;       for (long long j = max(i + 1, 0); j < s.size(); j++) {         cnt += (1ll << (j - i)) * (s[j] ==  1 );         if (cnt > k) {           ok = false;           break;         }       }       if (cnt > k) {         ok = false;         continue;       }       if (!ok) continue;       cout <<  Yes  << endl;       cur.clear();       for (int j = 0; j <= i; j++) {         if (s[j] ==  1 ) cur.push_back(j);       }       for (int j = max(i + 1, 0); j < s.size(); j++) {         if (s[j] ==  0 ) continue;         for (long long t = 0; t < (1ll << (j - i)); t++) {           cur.push_back(i);         }       }       for (int j = cur.size() - 1; j > 0; j--) {         cout << cur[j] <<    ;       }       split(cur[0], k - cnt + 1);       cout << endl;       return 0;     }     cout <<  No  << endl;   }   