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
n = int(input())

def check_prime(n, k):
    for i in range(k, int(pow(n, 0.5)) + 1):
        if n%i == 0:
            return (0, i)
    
    return (1, -1)

e = {}

for j in range(n):
    m = int(input())
    d = []
    k = 2
    for _ in range(2):
        x = check_prime(m, k)
        #print(x)
        if x[0] != 0:
            break
        else:
            m /= x[1]
            k = x[1]+1
            d.append(str(x[1]) + ' ')
    if (len(d) == 2) and  (x[1] != m):
        d.append(str(int(m)))
        #print(d)
        e[j] = d

for k in range(n):
    if k in e.keys():
        print('YES')
        print(''.join(e[k]))
    else:
        print('NO')