#include <bits/stdc++.h>
using namespace std;
long long st[1005];
long long sum, flag = 0;
int check(long long a, long long b) {
  if (a <= b)
    return 1;
  else
    return 0;
}
void dfs(long long a, long long b, long long step) {
  if (!check(a, b)) return;
  st[step] = a;
  if (a == b) {
    sum = step;
    flag = 1;
    return;
  }
  if (!flag) dfs(a * 2, b, step + 1);
  if (!flag) dfs(a * 10 + 1, b, step + 1);
}
int main() {
  long long a, b;
  scanf("%lld%lld", &a, &b);
  dfs(a, b, 1);
  if (flag) {
    printf("YES\n%d\n", sum);
    for (int i = 1; i <= sum; i++) printf("%lld ", st[i]);
    printf("\n");
  } else
    printf("NO\n");
  return 0;
}
