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 
def prime_factorize(n):
    a = []
    if n % 2 == 0:
        a.append(2)
        n //= 2
    f = 3
    while f * f <= n and len(a)<2:
        if n % f == 0:
            a.append(f)
            n //= f
            f += 1

        else:
            f += 1

    if n != 1 and n not in a:
        a.append(n)
    return a
YN=[]
N=int(input())
for i in range(N):
    P=int(input())
    p=prime_factorize(P)
    nums=""
    num=1
    if len(p)>=3:
        YN.append('YES')
        for j in range(2,len(p)):
            num=num*p[j]
        nums+= str(p[0]) + ' ' + str(p[1]) + ' ' +str(num)
        YN.append(nums)
    else:
        YN.append('NO')

for u in YN:
    print(u)
