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

Solution:
import java.util.Scanner;
public class codeforces1294C
{ 
	public static void main(String[] args)
	{
	    Scanner s = new Scanner(System.in);
	    int t= s.nextInt();
	    while(t-->0)
	    {
	        int m = s.nextInt(),n=m,i,a=1,b=1;
	        for(i=2;i*i<=m;i++)
	        {
	            if(n%i==0)
	            {
	                n=n/i;
	                if(a==1)
	                a=i;
	                else
	                {
	                    if(b==1)
	                    b=i;
	                }
	            }
	            if(a!=1&&b!=1)
	            break;
	        }
	        n=m/(a*b);
	        if(a==1||b==1||n==1||a==n||n==b||a==b) 
	        System.out.println("NO");
            else
			{
                System.out.println("YES");
                System.out.println(a+" "+b+" "+n);
			}
	    }
	}
}