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.*;
import java.lang.*;
import java.io.*;       
    public class d {
    public static void main (String[] args) {
        PrintWriter pw=new PrintWriter(System.out);
        Scanner sc=new Scanner(System.in);
        int t=sc.nextInt();
        for(int i=0;i<t;i++){
        int n=sc.nextInt();
        int s1=0,s2=0,s3=0,f=0,r=0;
         int[] a=new int[3];
         for(int k=2;k<Math.sqrt(n);k++){
               if(n%k==0){
                   s1=k;
                   r=n/k;
                   for(int k1=k+1;k1<Math.sqrt(r);k1++){
                         if((r)%k1==0){
                            s2=k1;
                            s3=(r)/k1;
                             f=1;
                             k=n;
                             break;
                         }
                   }
               }
         }
         
         if(f==1){
         pw.println("YES");
         pw.println(s1+" "+s2+" "+s3);}
         else
         pw.println("NO");
               
 
       }
                
               
        pw.close();
    	}
    }