from collections import deque
import math

def min_operations_to_equal(X, Y):
    # 如果初始时 X 和 Y 就相等,直接返回 0 次操作
    if X == Y:
        return 0

    # 用于记录已经访问过的状态,避免重复处理
    visited = set()
    # 初始化队列,每个元素是 (当前X值, 当前Y值, 操作次数)
    queue = deque([(X, Y, 0)])
    visited.add((X, Y))

    while queue:
        current_X, current_Y, steps = queue.popleft()
        if steps > 500:
            return -1
        # 执行交换操作
        new_X_swap, new_Y_swap = current_Y, current_X
        if new_X_swap == new_Y_swap:
            return steps + 1
        if (new_X_swap, new_Y_swap) not in visited:
            visited.add((new_X_swap, new_Y_swap))
            queue.append((new_X_swap, new_Y_swap, steps + 1))

        # 执行变换操作
        new_X_transform = current_X + current_Y
        new_Y_transform = current_X - current_Y
        if new_X_transform == new_Y_transform:
            return steps + 1
        if (new_X_transform, new_Y_transform) not in visited:
            visited.add((new_X_transform, new_Y_transform))
            queue.append((new_X_transform, new_Y_transform, steps + 1))

    # 如果队列处理完都没找到,返回 -1
    return -1

# 读取输入
X, Y = map(int,input().split())
# 计算并输出结果
print(min_operations_to_equal(X, Y))

使用BFS广度优先算法实现