#include <bits/stdc++.h>
using namespace std;
long long int a, b;
stack<long long int> st;
bool dfs(long long int n) {
  if (n > b) {
    return false;
  }
  if (n == b) {
    return true;
  }
  bool a1, a2;
  a1 = dfs(n * 2);
  if (a1) {
    st.push(n * 2);
    return true;
  }
  a2 = dfs((n * 10) + 1);
  if (a2) {
    st.push((n * 10) + 1);
    return true;
  }
  return false;
}
int main() {
  cin >> a >> b;
  if (dfs(a)) {
    cout << "YES\n";
    cout << st.size() + 1 << '\n';
    cout << a << ' ';
    while (!st.empty()) {
      cout << st.top() << ' ';
      st.pop();
    }
  } else {
    cout << "NO";
  }
  return 0;
}
