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
import math
import bisect
from itertools import accumulate
from math import ceil, log,gcd
from functools import lru_cache 
from sys import stdin, stdout
def read():
    return stdin.readline().rstrip()
import sys
import heapq

# total = int(input())
a,b =  ([int(p) for p in read().split()])

# ss= read()
# k =int(input())



ar = [0]*10
br = [0]*10

for z in [2,3,5]:
    t =a
    while t %z==0:
        t = t//z
        ar[z] +=1
        

for z in [2,3,5]:
    t =b
    while t %z==0:
        t = t//z
        br[z] +=1
        
                       
s = 0
for i in range(9):
    while ar[i] > br[i]:
        s+=1
        a = a//i
        ar[i] -=1
    while ar[i] < br[i]:
        s+=1
        b = b//i
        br[i] -=1   
if a==b:
    print(s)   
else:
    print(-1)     