#include <bits/stdc++.h>
using namespace std;
int n, k, cnt[200004], visited[200004], ret;
vector<int> v;
int main(){
cin >> n >> k;
visited[n] = 1;
queue<int> q;
q.push(n);
while(q.size()){
int here = q.front();
q.pop();
if(here == k){
ret = visited[here];
break;
}
for(int next : {here + 1, here - 1, here * 2}){
if(next >= 0 && next <= 200000){
if(!visited[next]){
q.push(next);
visited[next] = visited[here] + 1;
cnt[next] = here;
}
}
}
}
for(int i = k; i != n; i = cnt[i]){
v.push_back(i);
}
v.push_back(n);
cout << ret - 1 << '\n';
for(int a : v){
cout << a << ' ';
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBuLCBrLCBjbnRbMjAwMDA0XSwgdmlzaXRlZFsyMDAwMDRdLCByZXQ7CnZlY3RvcjxpbnQ+IHY7CmludCBtYWluKCl7CiAgICBjaW4gPj4gbiA+PiBrOwogICAgdmlzaXRlZFtuXSA9IDE7CiAgICBxdWV1ZTxpbnQ+IHE7CiAgICBxLnB1c2gobik7CiAgICAKICAgIHdoaWxlKHEuc2l6ZSgpKXsKICAgICAgICBpbnQgaGVyZSA9IHEuZnJvbnQoKTsKICAgICAgICBxLnBvcCgpOwogICAgICAgIAogICAgICAgIGlmKGhlcmUgPT0gayl7CiAgICAgICAgICAgIHJldCA9IHZpc2l0ZWRbaGVyZV07CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICBmb3IoaW50IG5leHQgOiB7aGVyZSArIDEsIGhlcmUgLSAxLCBoZXJlICogMn0pewogICAgICAgICAgICBpZihuZXh0ID49IDAgJiYgbmV4dCA8PSAyMDAwMDApewogICAgICAgICAgICAgICAgaWYoIXZpc2l0ZWRbbmV4dF0pewogICAgICAgICAgICAgICAgICAgIHEucHVzaChuZXh0KTsKICAgICAgICAgICAgICAgICAgICB2aXNpdGVkW25leHRdID0gdmlzaXRlZFtoZXJlXSArIDE7CiAgICAgICAgICAgICAgICAgICAgY250W25leHRdID0gaGVyZTsKICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICAKICAgIGZvcihpbnQgaSA9IGs7IGkgIT0gbjsgaSA9IGNudFtpXSl7CiAgICAgICAgdi5wdXNoX2JhY2soaSk7CiAgICB9CiAgICB2LnB1c2hfYmFjayhuKTsKICAgIAogICAgY291dCA8PCByZXQgLSAxIDw8ICdcbic7CiAgICBmb3IoaW50IGEgOiB2KXsKICAgICAgICBjb3V0IDw8IGEgPDwgJyAnOwogICAgfQp9