#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);
bool f=transform(a*2,b);
ts.pop_back();
ts.push_back(a*10+1);
bool s=transform(a*10+1,b);
ts.pop_back();
return f || s;
}
int main() {
long long a,b;
cin>>a>>b;
ts.push_back(a);
bool flag = transform(a,b);
if(!flag) {
cout<<"NO";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnZlY3RvcjxpbnQ+dHM7Cgpib29sIHRyYW5zZm9ybShpbnQgYSxpbnQgYikgewoJaWYoYT09YikgewoJCWNvdXQ8PCJZRVMiPDxlbmRsOwoJCWNvdXQ8PHRzLnNpemUoKTw8ZW5kbDsKCQlmb3IoaW50IGk9MDtpPHRzLnNpemUoKTsrK2kpIHsKCQkJY291dDw8dHNbaV08PCIgIjsKCQl9CgkJcmV0dXJuIHRydWU7Cgl9CglpZihhPmIpIHsKCQlyZXR1cm4gZmFsc2U7Cgl9Cgl0cy5wdXNoX2JhY2soYSoyKTsKCWJvb2wgZj10cmFuc2Zvcm0oYSoyLGIpOwoJdHMucG9wX2JhY2soKTsKCXRzLnB1c2hfYmFjayhhKjEwKzEpOwoJYm9vbCBzPXRyYW5zZm9ybShhKjEwKzEsYik7Cgl0cy5wb3BfYmFjaygpOwoJcmV0dXJuIGYgfHwgczsKCQp9CgppbnQgbWFpbigpIHsKCWxvbmcgbG9uZyBhLGI7CgljaW4+PmE+PmI7Cgl0cy5wdXNoX2JhY2soYSk7Cglib29sIGZsYWcgPSB0cmFuc2Zvcm0oYSxiKTsKCWlmKCFmbGFnKSB7CgkJY291dDw8Ik5PIjsKCX0KCXJldHVybiAwOwp9