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.util.Scanner;

public class ProblemA {
    public static void main(String[] string) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        double min,max;
        double temp;
        double tempor;
        int curr;
        for (int j = 0; j < n; j++) {
            curr = scanner.nextInt();
            if (curr == 1 || curr == 3 || curr == 2)
                System.out.println("N");
            else if (curr == 0)
                System.out.println("Y 0 0");
            else if (curr == 4)
                System.out.println("Y 2 2");

            else{
                max = curr - 1.000000001;
                min = 2;
                tempor = max;
                for (int pos = -1; pos >= -10; pos--) {

                    for (int i = 9; i >= 0; i--) {

                        temp = tempor - 1 * Math.pow(10,pos);
                        min = curr - temp;
                        if (curr < (min*temp)){


                            break;
                        }
                        tempor = temp;


                    }
                    max = tempor;

                }
                System.out.println("Y " + max + " " + min);
            }
        }
    }
}