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.OutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.FilterInputStream;
import java.io.BufferedInputStream;
import java.io.InputStream;

/**
 * Built using CHelper plug-in
 * Actual solution is at the top
 */
public class Main {
    public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        ScanReader in = new ScanReader(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        CMemeProblem solver = new CMemeProblem();
        solver.solve(1, in, out);
        out.close();
    }

    static class CMemeProblem {
        public void solve(int testNumber, ScanReader in, PrintWriter out) {
            int t = in.scanInt();


            while (t-- > 0) {
                int n = in.scanInt();
                boolean f = false;
                for (long i = 0; i <= n; i++) {
                    long a = i;
                    long b = n - i;
                    long A = 1;
                    long B = (a - b);
                    long C = -((a * b) - n);
                    if ((B * B) >= (4 * A * C)) {
                        double x = (-B + Math.sqrt((B * B) - (4 * A * C))) / (2 * A);
                        double minx = (-B - Math.sqrt((B * B) - (4 * A * C))) / (2 * A);
                        if ((a + x) >= 0 & (b + x) >= 0) {
                            out.println("Y " + (a + x) + " " + (b - x) + " ");
                            f = true;
                            break;
                        }


                        x = minx;
                        if ((a + x) >= 0 & (b + x) >= 0) {
                            out.println("Y " + (a + x) + " " + (b - x) + " ");
                            f = true;
                            break;
                        }


                    }
                }
                if (!f) {
                    out.println("N");
                }
            }
        }

    }

    static class ScanReader {
        private byte[] buf = new byte[4 * 1024];
        private int INDEX;
        private BufferedInputStream in;
        private int TOTAL;

        public ScanReader(InputStream inputStream) {
            in = new BufferedInputStream(inputStream);
        }

        private int scan() {
            if (INDEX >= TOTAL) {
                INDEX = 0;
                try {
                    TOTAL = in.read(buf);
                } catch (Exception e) {
                    e.printStackTrace();
                }
                if (TOTAL <= 0) return -1;
            }
            return buf[INDEX++];
        }

        public int scanInt() {
            int I = 0;
            int n = scan();
            while (isWhiteSpace(n)) n = scan();
            int neg = 1;
            if (n == '-') {
                neg = -1;
                n = scan();
            }
            while (!isWhiteSpace(n)) {
                if (n >= '0' && n <= '9') {
                    I *= 10;
                    I += n - '0';
                    n = scan();
                }
            }
            return neg * I;
        }

        private boolean isWhiteSpace(int n) {
            if (n == ' ' || n == '\n' || n == '\r' || n == '\t' || n == -1) return true;
            else return false;
        }

    }
}