Two little greedy bears have found two pieces of cheese in the forest of weight *a* and *b* grams, correspondingly. The bears are so greedy that they are ready to fight for the larger piece. That's where the fox comes in and starts the dialog: "Little bears, wait a little, I want to make your pieces equal" "Come off it fox, how are you going to do that?", the curious bears asked. "It's easy", said the fox. "If the mass of a certain piece is divisible by two, then I can eat exactly a half of the piece. If the mass of a certain piece is divisible by three, then I can eat exactly two-thirds, and if the mass is divisible by five, then I can eat four-fifths. I'll eat a little here and there and make the pieces equal". 

The little bears realize that the fox's proposal contains a catch. But at the same time they realize that they can not make the two pieces equal themselves. So they agreed to her proposal, but on one condition: the fox should make the pieces equal as quickly as possible. Find the minimum number of operations the fox needs to make pieces equal.
The first line contains two space-separated integers *a* and *b* (1 ≤ *a*, *b* ≤ 10<sup class="upper-index">9</sup>).
from collections import deque

def values(n):
    if n % 30 == 0:
        return [n // 2, n // 3, n // 5]
    elif n % 15 == 0:
        return [n // 3, n // 5]
    elif n % 10 == 0:
        return [n // 2, n // 5]
    elif n % 6 == 0:
        return [n // 2, n // 3]
    elif n % 5 == 0:
        return [n // 5]
    elif n % 3 == 0:
        return [n // 3]
    elif n % 2 == 0:
        return [n // 2]
    else:
        return []


def solve(a, b):
    queue = deque([(0, a, b)])
    while queue:
        steps, v1, v2 = queue.popleft()
        if v1 == v2:
            return steps

        v1, v2 = max(v1, v2), min(v1, v2)
        for n in values(v1):
            queue.append((steps + 1, n, v2))

    return -1


n, b = list(map(int, input().split()))
ans = solve(n, b)
if ans == float('inf'):
    print(-1)
else:
    print(ans)
