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>).
#include <iostream>

using namespace std;

int reduce(int x, int &steps2, int &steps3, int &steps5)
{
    while(x%2 == 0)
    {
        x /= 2;
        steps2++;
    }
    while(x%3 == 0)
    {
        x /= 3;
        steps3++;
    }
    while(x%5 == 0)
    {
        x /= 5;
        steps5++;
    }
    return x;
}

int canItBe(int a, int b)
{
    int steps2A = 0, steps3A = 0, steps5A = 0;
    int steps2B = 0, steps3B = 0, steps5B = 0;
    int totalSteps = 0;
    if(a == b)
        return 0;
    else
    {
        a = reduce(a, steps2A, steps3A, steps5A);
        b = reduce(b, steps2B, steps3B, steps5B);
        totalSteps = abs(steps2A-steps2B) + abs(steps3A-steps3B) + abs(steps5A-steps5B);
        if(a == b)
            return totalSteps;
        else
            return -1;
    }
}

int main()
{
    int a, b;
    cin >> a;
    cin >> b;
    cout << canItBe(a,b) << endl;
    return 0;
}
	     			   		 	  	    							