#include <bits/stdc++.h>
using namespace std;
long long a, b, flag;
long long ans[40];
bool tran(long long x, int cnt) {
  ans[cnt] = x;
  if (x > b) return false;
  if (x == b) {
    printf("YES\n");
    printf("%d\n", cnt);
    for (int i = 1; i <= cnt; i++) printf("%lld ", ans[i]);
    printf("\n");
    return true;
  }
  if (tran(2 * x, cnt + 1))
    return true;
  else if (tran(10 * x + 1, cnt + 1))
    return true;
}
int main() {
  scanf("%d%d", &a, &b);
  if (a == b) {
    printf("YES\n");
    printf("%d\n", 1);
    printf("%d", a);
    return 0;
  }
  if (tran(a, 1) == false) printf("NO\n");
  return 0;
}
