Problem: 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 

Solution (in PYTHON3):

Solution:
#!/usr/bin/python3


import math
di = dict()


def couns(x,n):
    z = int(math.sqrt(n))
    for i in range(x, z+2): 
        if n%i == 0:
            return i
    return 1
    


def countofmul(n):
    #if n in di:
    #    return di[n]
    li = list()
    i = 2
    val = 0
    while n >= 2:
        i = couns(i, n)
        
        if i != 1:
            li.append(i)
            n = n // i
            #print(li)
            if len(li) == 3:
                li[-2] *= li[-1]
                li.remove(li[-1])
            if len(li) == 2:
                if li[0] != li[1] and li[1] != n and li[0] != n and n != 1:
                    li.append(n)
                    
                    return li
        else:
            return []
    return []
                






                

"""
while n >= 2:
        i = couns(n)
        
        if i not in li and i != 1:
            n = int(n/i)
            li.append(i)
            if len(li) == 2:
                if n not in li and n != 1:
                    li.append(n)
                return li
        else:
        
            i += 1
        if i == n:
            return li
            
    return li
"""

n = int(input())
for i in range(n):
    x = int(input())
    r = countofmul(x)
    #print(r)

    if len(r) >= 3:
        a = r[0]
        b = r[1]
        c = r[2]
        print("YES")
        print(a,b,c)
    else:
        print("NO")