#include <iostream>
#include <queue>
#include <stack>
#include <cstring>
using namespace std;
int visited[100001];
queue<int> q;
int bfs(int n, int m){
int time=0;
q.push(n);
while(true){
int size=q.size();
for(int i=0; i<size; i++){
n=q.front();
q.pop();
if(n==m){
return time;
}
if(n-1>=0 && visited[n-1]==0){
visited[n-1]=1;
q.push(n-1);
}
if(n+1<=100000 && visited[n+1]==0){
visited[n+1]=1;
q.push(n+1);
}
if(n*2<100001 && visited[n*2]==0){
visited[n*2]=1;
q.push(n*2);
}
}
time++;
}
}
int main() {
int n,k;
cin>>n>>k;
cout << bfs(n,k) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8cXVldWU+CiNpbmNsdWRlIDxzdGFjaz4gCiNpbmNsdWRlIDxjc3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IHZpc2l0ZWRbMTAwMDAxXTsgCnF1ZXVlPGludD4gcTsKCmludCBiZnMoaW50IG4sIGludCBtKXsKCQoJaW50IHRpbWU9MDsKCXEucHVzaChuKTsKCXdoaWxlKHRydWUpewoJCQoJCWludCBzaXplPXEuc2l6ZSgpOwoJCWZvcihpbnQgaT0wOyBpPHNpemU7IGkrKyl7CgkJCW49cS5mcm9udCgpOwoJCQlxLnBvcCgpOwoJCQlpZihuPT1tKXsKCQkJCXJldHVybiB0aW1lOwoJCQl9CgkJCWlmKG4tMT49MCAmJiB2aXNpdGVkW24tMV09PTApewoJCQkJdmlzaXRlZFtuLTFdPTE7CgkJCQlxLnB1c2gobi0xKTsKCQkJfQoJCQlpZihuKzE8PTEwMDAwMCAmJiB2aXNpdGVkW24rMV09PTApewoJCQkJdmlzaXRlZFtuKzFdPTE7CgkJCQlxLnB1c2gobisxKTsKCQkJfQoJCQlpZihuKjI8MTAwMDAxICYmIHZpc2l0ZWRbbioyXT09MCl7CgkJCQl2aXNpdGVkW24qMl09MTsKCQkJCXEucHVzaChuKjIpOwoJCQl9CgkJfQoJCXRpbWUrKzsgCgl9Cn0KCmludCBtYWluKCkgewoJCglpbnQgbixrOwoJY2luPj5uPj5rOwoJY291dCA8PCBiZnMobixrKSA8PCBlbmRsOwoJCglyZXR1cm4gMDsKfQ==