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.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Locale;

public class f {
	public static void main(String[] args) throws IOException{
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		PrintWriter out = new PrintWriter(System.out);
		
		int t = Integer.parseInt(in.readLine().trim());

		
		for(int l = 0; l < t; l++) {
			int n = Integer.parseInt(in.readLine().trim());
			
			
			double a = binaria(n);
			double b = n - a;
			double c = n/a;
			
//			System.out.println(a);
//			System.out.println(b);
//			System.out.println(c);
//			
//			
//			System.out.println(a+b);
//			System.out.println(a*b);
//			
//			System.out.println(a+c);
//			System.out.println(a*c);
//			
			
			
			if(a >= 0) 
				out.printf(Locale.US, "%s %.9f %.9f\n", "Y", a, (double)n-a);
			else
				out.printf("%s\n", "N");
		}
		
		out.close();
	}
	
	static double F(double  a){
		return (a*a) / (a-1);
	}
	static double  binaria(double dato){
		double a = dato/2;
		double b = dato;
		
		if(Math.abs(a*(dato-a)- dato) < 1e-6)
			return a;
		if(a* (dato-a) < dato || b* (dato-b) > dato) return -1;
		
		
		while(true) {
			double mid = (a+b)/2;
			
			double x = dato - mid;
			
			if(Math.abs(x*mid - dato) < 1e-7)
				return mid;
			if(x*mid> dato)
				a = mid;
			else
				b = mid;
		}
		
	}

}