For this Question: Edward plays "Game 23". Initially, he has a number n and his goal is to transform it into m. In one move, he can multiply n by 2 or multiply n by 3. He can perform any number of moves. Print the number of moves needed to transform n to m. Print -1 if it is impossible to do so.The input consists of two space- separated integers n and m.

<b>Constraints</b>
1 &le; n &le; m &le; 5⋅10<sup>8</sup>Print the number of moves to transform n to m, or -1 if there is no solution.<b>Sample Input 1</b>
120 51840
<b>Sample Output 1</b>
7

<b>Sample Input 2</b>
48 72
<b>Sample Output 2</b>
-1, I have written this Solution Code: #include <bits/stdc++.h>

#define ll long long
#define pb push_back

using namespace std;

int main()
{
    ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);

    ll n, m;
    cin >> n >> m;

    ll ans = 0;

    if(m % n != 0){
        cout << -1;
        return 0;
    }
    else{
        m /= n;
        while(m % 3 == 0){
            m /= 3;
            ans++;
        }
        while(m % 2 == 0){
            m /= 2;
            ans++;
        }
        if(m == 1){
            cout << ans;
        }
        else{
            cout << -1;
        }
    }

    return 0;
}
, In this Programming Language: C++, Now tell me if this Code is compilable or not?