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 

t = int(input())
def prime_decomposition(n):
	table = []
	for i in range(2, int(n ** 0.5) + 1):
		while n % i == 0:
			table += [i]
			n //= i
		if n == 1:
			break
	if n != 1:
		table += [n]
	return table
for i in range(t):
	n = int(input())
	s = prime_decomposition(n)
	s.sort()
	flg = 0
	if len(s) < 3:
		print ("NO")
		continue
	#print (s)
	#if len(set(s)) == 3:
	#	print ("YES")
	#	print (" ".join(map(str,list(s))))
	#	continue
	for j in range(1,len(s)):
		for k in range(j+1,len(s)):
			z = s[0]
			x = 1
			y = 1
			for a in s[j:k]:
				x *= a
			for b in s[k:]:
				y *= b
			if x != y and y != z and x != z:
				print ("YES")
				print (z,x,y)
				flg = 1
				break
		if flg == 1:
			break
	if flg == 0:
		print ("NO")
	#print (s)