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 
import math
from itertools import permutations

def divisores(n):
    large_divisors = []
    for k in range(1, int(math.sqrt(n) + 1)):
        if(n % k == 0):
            yield k
            if(k*k != n):
                large_divisors.append(n//k)
    for d in reversed(large_divisors):
        yield d


t = int(input())

for k in range(t):
    q = int(input())
    divisoresL = (list(divisores(q)))
    if(len(divisoresL) < 5):
        print("NO")
    else:
        flag = 0
        divisoresL.remove(divisoresL[0])
        divisoresL.remove(divisoresL[len(divisoresL)-1])
        for subset in permutations(divisoresL, 3):
            if(subset[0]*subset[1]*subset[2] == q):
                print("YES")
                print("{} {} {}".format(subset[0], subset[1], subset[2]))
                flag = 1
                break
        if(flag == 0):
            print("NO")
            
    
        
        
