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
import math
input = sys.stdin.readline

############ ---- Input Functions ---- ############
def inp():
    return(int(input()))
def inlt():
    return(list(map(int,input().split())))
def insr():
    s = input()
    return(list(s[:len(s) - 1]))
def invr():
    return(map(int,input().split()))

t = inp()
for i in range(t):
    n = inp()
    i = 2
    check = False
    while(i*i <= n):
        if(n % i == 0):
            check = True
            nn = n//i
            j = i + 1
            check2 = False
            while(j *j <= nn):
                if(nn % j == 0):
                    c = nn // j
                    if(c != j):
                        if(c != i):
                            print("YES")
                            print(str(i) + " " + str(j) + " " + str(c))
                            check2 = True
                            break
                j = j + 1
            if(check2 == False):
                check = False
            break
        i = i + 1
    if(check == False):
        print("NO")