#include <bits/stdc++.h>
using namespace std;
vector<long int>v;
bool transform(int a,int b) {
if(b==0) {
return false;
}
if(a==b) {
cout<<"YES"<<endl;
cout<<v.size()<<endl;
reverse(v.begin(), v.end());
for(int i=0;i<v.size();++i)cout<<v[i]<<" ";
return true;
}
bool flag;
if(b%2==0) {
b=b/2;
v.push_back(b);
flag=transform(a,b);
b=b*2;
}
else if(b%2!=0) {
b=b-1;
if(b%10==0) {
b=b/10;
v.push_back(b);
flag=transform(a,b);
b=b*10+1;
b++;
}
else {
return false;
}
}
return flag;
}
int main() {
long a,b;
cin>>a>>b;
v.push_back(b);
bool flag=transform(a,b);
if(!flag)cout<<"NO";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnZlY3Rvcjxsb25nIGludD52Owpib29sIHRyYW5zZm9ybShpbnQgYSxpbnQgYikgewoJaWYoYj09MCkgewoJCXJldHVybiBmYWxzZTsKCX0KCWlmKGE9PWIpIHsKCQljb3V0PDwiWUVTIjw8ZW5kbDsKCQljb3V0PDx2LnNpemUoKTw8ZW5kbDsKCQlyZXZlcnNlKHYuYmVnaW4oKSwgdi5lbmQoKSk7CgkJZm9yKGludCBpPTA7aTx2LnNpemUoKTsrK2kpY291dDw8dltpXTw8IiAiOwoJCXJldHVybiB0cnVlOwoJfQoJYm9vbCBmbGFnOwoJaWYoYiUyPT0wKSB7CgkJYj1iLzI7CgkJdi5wdXNoX2JhY2soYik7CgkJZmxhZz10cmFuc2Zvcm0oYSxiKTsKCQliPWIqMjsKCX0KCWVsc2UgaWYoYiUyIT0wKSB7CgkJYj1iLTE7CgkJaWYoYiUxMD09MCkgewoJCWI9Yi8xMDsKCQl2LnB1c2hfYmFjayhiKTsKCQlmbGFnPXRyYW5zZm9ybShhLGIpOwoJCWI9YioxMCsxOwoJCWIrKzsKCQl9CgkJZWxzZSB7CgkJCXJldHVybiBmYWxzZTsKCQl9CgoJfQoJcmV0dXJuIGZsYWc7Cn0KCmludCBtYWluKCkgewoJbG9uZyBhLGI7CgljaW4+PmE+PmI7Cgl2LnB1c2hfYmFjayhiKTsKCWJvb2wgZmxhZz10cmFuc2Zvcm0oYSxiKTsKCWlmKCFmbGFnKWNvdXQ8PCJOTyI7CglyZXR1cm4gMDsKfQ==