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 defaultdict, Counter
from math import inf
from functools import lru_cache

import sys
#input=sys.stdin.readline


def solution():
    a,b = map(int, input().split())
    acount = {2:0,3:0,5:0}
    for num in [2,3,5]:
        while a%num == 0:
            a //= num 
            acount[num] += 1

    bcount = {2:0,3:0,5:0}
    for num in [2,3,5]:
        while b%num == 0:
            b //= num 
            bcount[num] += 1

    if a != b:
        return print(-1)

    res = 0
    for num in [2,3,5]:
        res += abs(acount[num] - bcount[num])

    print(res)


def main():
    t = 1
    #t = int(input())
    for _ in range(t):
        solution()


import sys
import threading
sys.setrecursionlimit(10**6)
threading.stack_size(1 << 27)
thread = threading.Thread(target=main)
thread.start(); thread.join()
#main()

