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:
import sys

queries = int(sys.stdin.readline())

def numberToFactors(number,fromTop=False):
        factor1 = number
        factor2 = 2
        if fromTop:
            while factor2<=factor1**0.5:
                factor2+=1
            while factor2>2:
                if factor1%factor2==0:
                    if factor1//factor2!=factor2:
                        return [factor1//factor2,factor2]
                factor2-=1
        else:
            factor2 = 2
            while factor2<=factor1**0.5:
                if factor1%factor2==0:
                    if factor1//factor2!=factor2:
                        return [factor1//factor2,factor2]
                factor2+=1
        return [factor1]

for query in range(queries):
    number = int(sys.stdin.readline())
    
        
    factors = numberToFactors(number)
    if len(factors)==2:
        factorsLeft = numberToFactors(factors[0],True)
        factorsRight = numberToFactors(factors[1],True)
        next = True
        if len(factorsLeft)==2:
            if factorsLeft[0]!=factors[1] and factorsLeft[1]!=factors[1]:
                del factors[0]
                factors = factorsLeft+factors
                next = False
        if len(factorsRight)==2 and next:
            if factorsRight[0]!=factors[0] and factorsRight[1]!=factors[0]:
                del factors[1]
                factors = factors+factorsRight
    if len(factors) == 3:
        print('YES')
        print(" ".join(map(str,factors)))
    else:
        print('NO')