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

import java.util.Scanner;

public class main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in = new Scanner(System.in);
		int tests = in.nextInt();
		int t = 0;
		while(t<tests) {
			double cur = in.nextDouble();
//			double lo = 3;
//			double hi = cur-lo;double mid = 0;
//			if(cur==4)
//				System.out.println(2.00000000+" "+2.0000000);
//			else if(cur==1)
//				System.out.println("N");
//			else {
//			while(hi*lo>cur+Math.pow(10, -6)||hi*lo<cur-Math.pow(10, -6)) {
//				
////				if(hi*lo<cur) {
////					lo = mid;
////					hi=cur-mid;
////				}
//				if(hi*lo<cur) {
//					mid = (mid+(mid*2))/2;
//					lo=mid;
//					hi=cur-mid;
//				}
//				else	if(hi*lo>cur) {
//					if(lo/2.0>1)
//					mid = lo/2.0;
//					else
//						mid = (mid+(mid*2))/2;
//						lo = mid;
//						hi=cur-mid;
//					}
//			}
//			System.out.println("Y");
//			System.out.println(hi+" "+ lo);
//			}
			if(cur==0)
				System.out.println("Y 0.0 0.0");
			else if(cur<4)
				System.out.println("N");
			else if(cur==4)
				System.out.println("Y 2.00000000 2.0000000");
			else {
				double a = (cur-Math.sqrt(cur*cur-(4*cur)))/2;
				double b = cur-a;
				System.out.println("Y"+" "+b+" "+a);
			}
			t++;
		}
	}

}
