#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;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnZlY3RvcjxpbnQ+dHM7Cgpib29sIHRyYW5zZm9ybShpbnQgJmEsaW50IGIpIHsKCWlmKGE9PWIpIHsKCQljb3V0PDwiWUVTIjw8ZW5kbDsKCQljb3V0PDx0cy5zaXplKCk8PGVuZGw7CgkJZm9yKGludCBpPTA7aTx0cy5zaXplKCk7KytpKSB7CgkJCWNvdXQ8PHRzW2ldPDwiICI7CgkJfQoJCXJldHVybiB0cnVlOwoJfQoJaWYoYT5iKSB7CgkJcmV0dXJuIGZhbHNlOwoJfQoJdHMucHVzaF9iYWNrKGEqMik7CglhPWEqMjsKCWJvb2wgZj10cmFuc2Zvcm0oYSxiKTsKCWE9YS8yOwoJdHMucG9wX2JhY2soKTsKCXRzLnB1c2hfYmFjayhhKjEwKzEpOwoJYT1hKjEwKzE7Cglib29sIHM9dHJhbnNmb3JtKGEsYik7CglhPWEtMTsKCWE9YS8xMDsKCXRzLnBvcF9iYWNrKCk7CglyZXR1cm4gZiB8fCBzOwoJCn0KCmludCBtYWluKCkgewoJaW50IGEsYjsKCWNpbj4+YT4+YjsKCXRzLnB1c2hfYmFjayhhKTsKCWJvb2wgZmxhZyA9IHRyYW5zZm9ybShhLGIpOwoJaWYoIWZsYWcpIHsKCQljb3V0PDwiTk8iOwoJfQoJcmV0dXJuIDA7Cn0=