#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;
b=b/10;
v.push_back(b);
flag=transform(a,b);
b=b*10;
b++;
}
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+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnZlY3Rvcjxsb25nIGludD52Owpib29sIHRyYW5zZm9ybShpbnQgYSxpbnQgYikgewoJaWYoYj09MCkgewoJCXJldHVybiBmYWxzZTsKCX0KCWlmKGE9PWIpIHsKCQljb3V0PDwiWUVTIjw8ZW5kbDsKCQljb3V0PDx2LnNpemUoKTw8ZW5kbDsKCQlyZXZlcnNlKHYuYmVnaW4oKSwgdi5lbmQoKSk7CgkJZm9yKGludCBpPTA7aTx2LnNpemUoKTsrK2kpY291dDw8dltpXTw8IiAiOwoJCXJldHVybiB0cnVlOwoJfQoJYm9vbCBmbGFnOwoJaWYoYiUyPT0wKSB7CgkJYj1iLzI7CgkJdi5wdXNoX2JhY2soYik7CgkJZmxhZz10cmFuc2Zvcm0oYSxiKTsKCQliPWIqMjsKCX0KCWVsc2UgaWYoYiUyIT0wKSB7CgkJYj1iLTE7CgkJYj1iLzEwOwoJCXYucHVzaF9iYWNrKGIpOwoJCWZsYWc9dHJhbnNmb3JtKGEsYik7CgkJYj1iKjEwOwoJCWIrKzsKCX0KCXJldHVybiBmbGFnOwp9CgppbnQgbWFpbigpIHsKCWxvbmcgYSxiOwoJY2luPj5hPj5iOwoJdi5wdXNoX2JhY2soYik7Cglib29sIGZsYWc9dHJhbnNmb3JtKGEsYik7CglpZighZmxhZyljb3V0PDwiTk8iOwoJcmV0dXJuIDA7Cn0=