#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m;
int k[205];
//bool vis[205];
int f[205];
//bool check(int x){
// if((!(vis[x]))&&(x<=n)&&(x>=1)){
// return 1;
// }
// return 0;
//}
int bfs(){
queue<int>q;
q.push(n);
f[n]=0;
while(!q.empty()){
int u=q.front();
q.pop();
if(u==m){
return f[u];
}
int s1=u*2;
int s2=u-1;
if((s1>=0)&&(s1<=10005)&&(f[s1]==-1)){
q.push(s1);
// vis[s1]=1;
f[s1]=f[u]+1;
}
if((s2>=0)&&(s2<=10005)&&(f[s2]==-1)){
q.push(s2);
// vis[s2]=1;
f[s2]=f[u]+1;
}
// if((s1==b)||(s2==b)){
// cout<<f[b];
// return;
// }
}
// cout<<"-1";
}
signed main(){
memset(f,-1,sizeof(f));
cin>>n>>m;
cout<<bfs();
return 0;
}