from collections import deque n, K = map(int, input().split()) max_val = 100001 # 문제 범위: 0 ≤ 위치 ≤ 100000 # 각 위치에 도달하는 최소 시간 (방문하지 않은 경우 -1) dist = [-1] * max_val # 각 위치에 도달하는 방법의 수 ways = [0] * max_val q = deque([n]) dist[n] = 0 ways[n] = 1 while q: cur = q.popleft() for next in (cur - 1, cur + 1, cur * 2): if 0 <= next < max_val: # 아직 방문하지 않은 경우 if dist[next] == -1: dist[next] = dist[cur] + 1 ways[next] = ways[cur] q.append(next) # 동일한 최소 시간으로 도달하는 경우 elif dist[next] == dist[cur] + 1: ways[next] += ways[cur] print(dist[K]) print(ways[K])