#include <bits/stdc++.h>
using namespace std;
int main() {
  long long a, b, flag = 0;
  vector<long long> v;
  cin >> a >> b;
  v.push_back(b);
  while ((b % 2 == 0 || ((b % 2 == 1) && (b % 10 == 1))) && b > a) {
    if (b % 2 == 0) {
      b = b / 2;
      v.push_back(b);
      if (b == a) {
        flag = 1;
        break;
      }
    } else {
      b = b / 10;
      v.push_back(b);
      if (b == a) {
        flag = 1;
        break;
      }
    }
  }
  if (flag == 0)
    cout << "NO" << endl;
  else {
    reverse(v.begin(), v.end());
    cout << "YES" << endl;
    cout << v.size() << endl;
    for (int i = 0; i < v.size(); i++)
      if (i == v.size() - 1)
        cout << v[i] << endl;
      else
        cout << v[i] << ' ';
  }
}
