You are given one integer number n. Find three distinct integers a, b, c such that 2 ≤ a, b, c and a ⋅ b ⋅ c = n or say that it is impossible to do it.

If there are several answers, you can print any.

You have to answer t independent test cases.

Input

The first line of the input contains one integer t (1 ≤ t ≤ 100) — the number of test cases.

The next n lines describe test cases. The i-th test case is given on a new line as one integer n (2 ≤ n ≤ 10^9).

Output

For each test case, print the answer on it. Print "NO" if it is impossible to represent n as a ⋅ b ⋅ c for some distinct integers a, b, c such that 2 ≤ a, b, c.

Otherwise, print "YES" and any possible such representation.

Example

Input


5
64
32
97
2
12345


Output


YES
2 4 8 
NO
NO
NO
YES
3 5 823 
t = int(input())
for _ in range(t):
    n = int(input())
    nn = n
    fac = []
    i = 2
    while i * i <= n:
        cnt = 0
        while n % i == 0:
            cnt += 1
            n //= i
        if cnt:
            fac.append((i, cnt))
        i += 1
    if n > 1:
        fac.append((n, 1))
    ok = False
    ans = None
    if len(fac) > 2 or len(fac) == 2 and fac[0][1] + fac[1][1] > 3:
        ok = True
        ans = (fac[0][0], fac[1][0])
    elif len(fac) == 1 and fac[0][1] >= 6:
        ok = True
        ans = (fac[0][0], int(fac[0][0] ** 2))
    if not ok:
        print("NO")
    else:
        print("YES")
        print(ans[0], ans[1], nn // ans[0] // ans[1])