#include <bits/stdc++.h>
using namespace std;
vector<long long int> ve;
int dfs(long long int a, long long int b) {
  if (a == b) {
    return 0;
  }
  if (a > b) return 1;
  int an1 = dfs(2 * a, b);
  if (an1 == 0) {
    ve.push_back(2 * a);
    return 0;
  }
  int an2 = dfs(10 * a + 1, b);
  if (an2 == 0) {
    ve.push_back(10 * a + 1);
    return 0;
  }
  return 1;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long int a, b;
  cin >> a >> b;
  int an = dfs(a, b);
  if (an == 0) {
    cout << "YES" << endl;
    ve.push_back(a);
    cout << ve.size() << endl;
    reverse(ve.begin(), ve.end());
    for (long long int aa : ve) {
      cout << aa << " ";
    }
  } else
    cout << "NO" << endl;
  return 0;
}
