#include <bits/stdc++.h>
using namespace std;
vector<int> res;
bool f = 0;
void go(long long a, long long b) {
  res.push_back(a);
  if (a == b) {
    f = 1;
    return;
  }
  if (a > b) {
    res.pop_back();
    return;
  }
  go(2 * a, b);
  if (f) return;
  go(10 * a + 1, b);
  if (f) return;
  res.pop_back();
}
int main() {
  long long a, b;
  cin >> a >> b;
  go(a, b);
  if (f) {
    printf("YES\n");
    printf("%d\n", res.size());
    for (int i = 0; i < res.size(); i++) {
      printf("%d ", res[i]);
    }
  } else {
    printf("NO\n");
  }
  return 0;
}
