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 
# imports
"""Fill in here"""
import math

# Set to False for input from standard in
debug = False
if debug:
    f = open('test', 'r')
else:
    f = None


def line(file):
    if debug:
        return file.__next__().strip()
    return input()


# Solve
"""Fill in here"""
#  array = [int(i) for i in line(f).split(' ')]
# Instead of using input() use line(f)
test_cases = int(line(f))

for _ in range(test_cases):
    n = int(line(f))

    def solve(n):
        throot = int(math.pow(n, 1/3)) + 1
        for a in range(2, throot):
            if n % a == 0:
                twroot = int(math.sqrt(n / a)) + 1
                for b in range(a + 1, twroot):
                    if (n / a) % b == 0:
                        c = int(n / a / b)
                        if c != b:
                            return f'{a} {b} {c}'
        raise EnvironmentError()

    try:
        string = solve(n)
        print('YES')
        print(string)
    except EnvironmentError:
        print('NO')

####

if debug:
    f.close()
