#include <bits/stdc++.h>
using namespace std;
vector<int>ts;

bool transform(int &a,int b) {
	if(a==b) {
		cout<<"YES"<<endl;
		cout<<ts.size()<<endl;
		for(int i=0;i<ts.size();++i) {
			cout<<ts[i]<<" ";
		}
		return true;
	}
	if(a>b) {
		return false;
	}
	ts.push_back(a*2);
	a=a*2;
	bool f=transform(a,b);
	a=a/2;
	ts.pop_back();
	ts.push_back(a*10+1);
	a=a*10+1;
	bool s=transform(a,b);
	a=a-1;
	a=a/10;
	ts.pop_back();
	return f || s;
	
}

int main() {
	int a,b;
	cin>>a>>b;
	ts.push_back(a);
	bool flag = transform(a,b);
	if(!flag) {
		cout<<"NO";
	}
	return 0;
}