#include<bits/stdc++.h>
using namespace std;

long long n,m;
bool visited[200005];

void bfs(long long n, long long m, bool visited[])
{
    queue<long long> q;

    q.push(n);
    visited[n] = true;

    long long level = 0;

    while (!q.empty())
    {
        long long sz = q.size();
        level++;

        while (sz--)
        {
            long long t = q.front();
            q.pop();

            long long t1 = t*2;
            long long t2 = t-1;

            if (t1 == m || t2 == m)
            {
                cout << level;
                return;
            }

            if (t1 >= 0 && t1 <= 100000 && !visited[t1])
            {
                visited[t1] = true;
                q.push(t1);
            }

            if (t2 >= 0 && !visited[t2])
            {
                visited[t2] = true;
                q.push(t2);
            }
        }
    }
}

void input()
{
    cin >> n >> m;
}

void solve()
{
    if (n == m)
    {
        cout << 0;
        return;
    }

    bfs(n, m, visited);
}

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    input();
    solve();
}

