#include <bits/stdc++.h>
using namespace std;
long long n, val, arr[10000007];
int main() {
  long long f = 0, cnt = 1;
  cin >> val >> n;
  long long ans = n;
  while (1) {
    if (n % 10 == 1 && f == 0) {
      while (n % 10 == 1) {
        arr[cnt++] = n / 10;
        n = n / 10;
        if (n < val) {
          f = 1;
          break;
        }
        if (n == val) {
          f = 2;
          break;
        }
      }
    }
    if (n % 2 == 0 && f == 0) {
      while (n % 2 == 0) {
        arr[cnt++] = n / 2;
        n = n / 2;
        if (n < val) {
          f = 1;
          break;
        }
        if (n == val) {
          f = 2;
          break;
        }
      }
    } else
      break;
    if (f == 1 or f == 2) break;
  }
  if (f == 2) {
    cout << "YES" << endl;
    cout << cnt << endl;
    for (int i = cnt - 1; i > 0; i--) {
      printf("%lld ", arr[i]);
    }
    cout << ans << endl;
  } else if (f == 1 or f == 0)
    cout << "NO" << endl;
}
