Problem: Try guessing the statement from this picture: 

<image>

You are given a non-negative integer d. You have to find two non-negative real numbers a and b such that a + b = d and a ⋅ b = d.

Input

The first line contains t (1 ≤ t ≤ 10^3) — the number of test cases.

Each test case contains one integer d (0 ≤ d ≤ 10^3).

Output

For each test print one line.

If there is an answer for the i-th test, print "Y", and then the numbers a and b.

If there is no answer for the i-th test, print "N".

Your answer will be considered correct if |(a + b) - a ⋅ b| ≤ 10^{-6} and |(a + b) - d| ≤ 10^{-6}.

Example

Input


7
69
0
1
4
5
999
1000


Output


Y 67.985071301 1.014928699
Y 0.000000000 0.000000000
N
Y 2.000000000 2.000000000
Y 3.618033989 1.381966011
Y 997.998996990 1.001003010
Y 998.998997995 1.001002005

Solution (in JAVA):

Solution:
import java.io.*;
import java.math.BigInteger;
import java.util.*;
                                 
public class Main {
                             
    static Scanner in;
         
//  static StreamTokenizer in;
//  static int nextInt() throws IOException {
//      in.nextToken();
//      return (int)in.nval;    
//  }
    static Random rand = new Random();
    static long gcd(long a, long c) {
        BigInteger q = BigInteger.valueOf(a);
        BigInteger w = BigInteger.valueOf(c);
        q = q.gcd(w);
        return q.longValue();
    }

    public static void main(String args[]) throws IOException {
    	
//      in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
        in = new Scanner(System.in);         
        PrintWriter out = new PrintWriter(System.out);
        int n = in.nextInt();
        for(int i =0;i<n;i++) {
        	double t = in.nextInt() * 1.0;
        	if(t == 4.0) {
        		out.println("Y "+ "2.00000000000 2.0000000000000");
        		continue;
        	}
        		
        	double l = 0.0;
        	double r = t;
        	double f  =t-l;
        	if(t==1 || t == 3|| t==2) {
        		out.println('N');
        		continue;
        	}
        	while(l +0.0000000001<r) {
        		
        		double m = (l+r)/2;
        		f = t-m;
//        		System.out.println(l+" "+r+" "+m);
        		
        		if(m*f < t) {
        			r = m;
        		}else {
        			l =m;
        		}
        		
        	}
        	f = t - r;
    		f+= t - (f+r);
        	out.println("Y " + l+" "+f);
        }
        out.close();
    }
}
                                 
class Pair implements Comparable{
	int a;
    int b;
    public Pair() {
        this.a = 0;
        this.b = 0;
    }
    public Pair(int a, int b) {
        this.a = a;
        this.b = b;
    }
    public int compareTo(Object arg0) {
        if(Integer.compare(this.a, ((Pair) arg0).a) == 0) return Integer.compare(this.b, ((Pair) arg0).b);
            return Integer.compare(this.a, ((Pair) arg0).a);
    }
}