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 PYTHON):

Solution:
from math import sqrt
def factor(n):
	s = int(sqrt(n))
	rLst = [1, n]
	for i in xrange(2, s+1):
		if n%i==0:
			rLst.append(i)
			if n//i != i:
				rLst.append(n//i)
	rLst = list(set(rLst))
	rLst.sort()
	return rLst

from sys import stdin
raw_input = lambda: stdin.readline().rstrip()
input = lambda: int(raw_input())
I=lambda: map(int, raw_input().split())
t = input()
for _ in xrange(t):
	n = input()
	facts = factor(n)
	q1 = facts[1]
	facts1 = factor(n//q1)
	q2 = -1
	for x in facts1:
		if x>1 and x != q1:
			q2 = x
			break
	if q2==-1:
		print 'NO'
		continue
	q3 = n//(q1*q2)
	if q3==1 or q3==q1 or q3==q2:
		print 'NO'
	else:
		print 'YES'
		print q1, q2, q3
	# if len(facts)<7:
		# print 'NO'
	# else:
		# print 'YES'
		# q1 = facts[1]
		# q2 = facts[2]
		# print q1, q2, n//(q1*q2)