#include <bits/stdc++.h>
using namespace std;
bool transform(long long int a, long long int b, vector<int>& path) {
  if (a > b) return false;
  if (a == b) {
    path.push_back(a);
    return true;
  }
  path.push_back(a);
  if (transform(a * 2, b, path)) return true;
  if (transform(a * 10 + 1, b, path)) return true;
  path.pop_back();
  return false;
}
int main() {
  int a, b;
  cin >> a >> b;
  vector<int> path;
  if (transform(a, b, path)) {
    cout << "YES\n";
    cout << path.size() << "\n";
    for (auto it : path) {
      cout << it << " ";
    }
    cout << "\n";
  } else {
    cout << "NO\n";
  }
  return 0;
}
