from collections import deque
#import sys
n, k = map(int, input().split())
#n, k = map(int, sys.stdin.readline().split(' '))
visit = [0] * (k+1)
answer = 0
que = deque()
que.append(n)
while que:
now = que.popleft()
# 전처리 수행
if now == k:
print(visit[now]+1) # 0부터 시작했으므로
break
for nx in [now-1, now+1, now*2]:
if 0 <= nx < (k+1):
if nx == now*2:
que.append(nx) # 초 ++ (X)
else:
visit[nx] = visit[now] + 1 # 초 ++ (O)
que.append(nx)
from collections import deque
n, k = map(int, input().split())
queue = deque()
queue.append(n)
visited = [0] * 100001
ans = -1
while queue:
x = queue.popleft()
if x == k:
ans = visited[x]
break
for nx in [x - 1, x+1, 2*x]:
if 0 <= nx < 100001 and visited[nx] == 0:
if nx == 2*x and x != 0:
visited[nx] = visited[x]
queue.appendleft(nx)
else:
visited[nx] = visited[x] + 1
queue.append(nx)
print(ans)