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  
def printDivisors(n) :  
    i = 2
    x = []
    while i <= math.sqrt(n): 
        if (n % i == 0) : 
            if (n / i == i) : 
                x.append(i)
            else : 
                x.append(i)
                x.append(n//i)
        i = i + 1
    return x
  

t = int(input())
for test in range(t):
    n = int(input())
    x = printDivisors(n)

    y = {}
    for aa in x:
        y[aa] = y.get(aa,0)+1
    nn = len(x)
  #  print(y)
    f=0
    a,b,c=0,0,0
    for i in range(nn-1):
        for j in range(i+1,nn):
            if (x[i]*x[j])<=n and (x[i]*x[j])!=0 and (n%(x[i]*x[j])==0):
                check = n//(x[i]*x[j])
                #print(check,x[i],x[j])
                if check==x[i] or check==x[j]:
                    continue
                elif check in y:
                    #print("SS")
                    f=1
                    a= x[i]
                    b = x[j]
                    c = check
                    break
        if f==1:
            break
    if f==1:
        print("YES")
        print(a,b,c)
    else:
        print("NO")
    

