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


def get_fac(n, cr, ml):
    for i in range(2, ml+1):
        if not cr[i]: continue
        if n % i == 0:
            cr[i] = False
            return i
        else:
            for j in range(1,ml//i):
                cr[i*j] = False


for _ in range(t):
    n = int(input())

    ml = int(pow(n, 1/3)//1)

    cr = [True for _ in range(ml+1)]

    a = get_fac(n,cr,ml)

    if not a:
        print("NO"); continue

    nml = int(pow(int(n/a), 1/2))

    cr = [True for _ in range(nml+1)]

    if a <= nml:
        cr[a] = False

    b = get_fac(int(n/a), cr, nml)

    if not b:
        print("NO"); continue

    c = n//(a*b)

    if c == a or c == b:
        print("NO"); continue

    print("YES")
    print(a,b,c)