B. Multiply by 2, divide by 6
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

You are given an integer $$$n$$$. In one move, you can either multiply $$$n$$$ by two or divide $$$n$$$ by $$$6$$$ (if it is divisible by $$$6$$$ without the remainder).

Your task is to find the minimum number of moves needed to obtain $$$1$$$ from $$$n$$$ or determine if it's impossible to do that.

You have to answer $$$t$$$ independent test cases.

Input

The first line of the input contains one integer $$$t$$$ ($$$1 \le t \le 2 \cdot 10^4$$$) — the number of test cases. Then $$$t$$$ test cases follow.

The only line of the test case contains one integer $$$n$$$ ($$$1 \le n \le 10^9$$$).

Output

For each test case, print the answer — the minimum number of moves needed to obtain $$$1$$$ from $$$n$$$ if it's possible to do that or -1 if it's impossible to obtain $$$1$$$ from $$$n$$$.

Example
Input
7
1
2
3
12
12345
15116544
387420489
Output
0
-1
2
-1
-1
12
36
Note

Consider the sixth test case of the example. The answer can be obtained by the following sequence of moves from the given integer $$$15116544$$$:

  1. Divide by $$$6$$$ and get $$$2519424$$$;
  2. divide by $$$6$$$ and get $$$419904$$$;
  3. divide by $$$6$$$ and get $$$69984$$$;
  4. divide by $$$6$$$ and get $$$11664$$$;
  5. multiply by $$$2$$$ and get $$$23328$$$;
  6. divide by $$$6$$$ and get $$$3888$$$;
  7. divide by $$$6$$$ and get $$$648$$$;
  8. divide by $$$6$$$ and get $$$108$$$;
  9. multiply by $$$2$$$ and get $$$216$$$;
  10. divide by $$$6$$$ and get $$$36$$$;
  11. divide by $$$6$$$ and get $$$6$$$;
  12. divide by $$$6$$$ and get $$$1$$$.