#include<bits/stdc++.h>
using namespace std;
int n,k;
int cnt[100001]={0,};
int dx[3]={-1,1,2};
queue<int>q;
int bfs(int i){
q.push(i);
while(!q.empty()){
int x=q.front();
q.pop();
if(x==k)
return cnt[x];
for(int i=0;i<3;i++){
int nx=x+dx[i];
if(i==2)
nx=2*x;
if(nx>=0 && nx<=100000 && cnt[nx]==0){
cnt[nx]=cnt[x]+1;
q.push(nx);
}
}
}
}
int main() {
cin>>n>>k;
cout<<bfs(n);
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbixrOwppbnQgY250WzEwMDAwMV09ezAsfTsKaW50IGR4WzNdPXstMSwxLDJ9OwpxdWV1ZTxpbnQ+cTsKCmludCBiZnMoaW50IGkpewoJcS5wdXNoKGkpOwoJCgl3aGlsZSghcS5lbXB0eSgpKXsKCQlpbnQgeD1xLmZyb250KCk7CgkJcS5wb3AoKTsKCQkKCQlpZih4PT1rKQoJCQlyZXR1cm4gY250W3hdOwoJCQoJCWZvcihpbnQgaT0wO2k8MztpKyspewoJCQlpbnQgbng9eCtkeFtpXTsKCQkJaWYoaT09MikKCQkJCW54PTIqeDsKCQkJCgkJCWlmKG54Pj0wICYmIG54PD0xMDAwMDAgJiYgY250W254XT09MCl7CgkJCQljbnRbbnhdPWNudFt4XSsxOwoJCQkJcS5wdXNoKG54KTsKCQkJfQoJCX0KCX0KfQoKaW50IG1haW4oKSB7CgljaW4+Pm4+Pms7CgkKCWNvdXQ8PGJmcyhuKTsKCQoJcmV0dXJuIDA7Cn0=