#include <bits/stdc++.h>
using namespace std;
int flag = 0;
int a, b;
vector<int> v;
void dfs(int x) {
  if (x < a) {
    flag = 1;
    return;
  }
  if (x == a) {
    v.push_back(x);
    return;
  }
  if (x % 10 == 1) {
    v.push_back(x);
    --x;
    x = x / 10;
    dfs(x);
  } else if (x % 2 == 0) {
    v.push_back(x);
    x = x / 2;
    dfs(x);
  } else {
    flag = 1;
    return;
  }
}
int main() {
  cin >> a >> b;
  dfs(b);
  if (flag == 1)
    cout << "NO" << endl;
  else {
    cout << "YES" << endl;
    cout << v.size() << endl;
    for (int i = v.size() - 1; i >= 0; i--) cout << v[i] << " ";
  }
  return 0;
}
