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:
for _ in range(int(input())):
    n = int(input())
    fac = []
    rem = 1
    if n % 2 == 0:
        n /= 2
        fac.append(2)
        tot = 1
        tot *= 2
        added = 2
        x = 1
        while n > 1 and n % 2 == 0:
            x *= 2
            n /= 2
            tot *= 2
            if fac[-1] < x:
                fac.append(x)
                # app = True
                added *= x
                x = 1
            if len(fac) >= 3:
                rem *= n
                n = 1
                break
        rem *= tot / added
    i = 3
    while n > 1:
        if n % i == 0:
            n /= i
            fac.append(i)
            tot = 1
            tot *= i
            added = i
            x = 1
            while n > 1 and n % i == 0:
                x *= i
                n /= i
                tot *= i
                if fac[-1] < x:
                    fac.append(x)
                    # app = True
                    added *= x
                    x = 1
                if len(fac) >= 3:
                    break
            rem *= tot / added
            if len(fac) >= 3:
                rem *= n
                n = 1
                break

        if i * i >= n:
            if n > 1 and n not in fac:
                fac.append(n)
            else:
                rem *= n
            n = 1
            break
        i += 2
    # print(fac, rem)

    if len(fac) >= 3:
        a = fac[0]
        b = fac[1]
        c = fac[2]
        for x in fac[3:]:
            c *= x
        c *= rem
        print("YES")
        print(int(a), int(b), int(c))

    elif len(fac) >= 2 and rem > 1 and rem not in fac:
        # print()
        a = fac[0]
        b = fac[1]
        c = rem
        print("YES")
        print(int(a), int(b), int(c))

    else:
        print("NO")