#include <bits/stdc++.h>
using namespace std;
queue<int>q;
map<int,bool>vis;
vector<int>v[10001];
int bfs(int m)
{
int ans=0;
while(!q.empty())
{
int s=q.front();
vis[s]=1;
if(s==m)return ans;
q.pop();
if(s-1>0&&!vis[s-1])
{
q.push(s-1);
vis[s-1]=1;
ans++;
}
if(2*s>0&&!vis[2*s])
{
q.push(2*s);
vis[2*s]=1;
ans++;
}
}
return 0;
}
int main() {
// your code goes here
int n,m;
cin>>n>>m;
q.push(n);
cout<<bfs(m);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnF1ZXVlPGludD5xOwptYXA8aW50LGJvb2w+dmlzOwp2ZWN0b3I8aW50PnZbMTAwMDFdOwppbnQgYmZzKGludCBtKQp7ICAKIGludCBhbnM9MDsKIHdoaWxlKCFxLmVtcHR5KCkpCiB7IAogCWludCBzPXEuZnJvbnQoKTsKIAl2aXNbc109MTsKIAlpZihzPT1tKXJldHVybiBhbnM7CiAJcS5wb3AoKTsKIAlpZihzLTE+MCYmIXZpc1tzLTFdKQogCXsgCiAJIHEucHVzaChzLTEpOwogCSB2aXNbcy0xXT0xOyAKIAkgYW5zKys7CiAJfQogCWlmKDIqcz4wJiYhdmlzWzIqc10pCiAJeyAKIAkgIHEucHVzaCgyKnMpOwogCSAgdmlzWzIqc109MTsgCiAJICBhbnMrKzsKIAl9CiAKIH0KIHJldHVybiAwOwp9CmludCBtYWluKCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJaW50IG4sbTsKCWNpbj4+bj4+bTsKCXEucHVzaChuKTsKICAgCWNvdXQ8PGJmcyhtKTsKCXJldHVybiAwOwp9