Problem: Igor the analyst has adopted n little bunnies. As we all know, bunnies love carrots. Thus, Igor has bought a carrot to be shared between his bunnies. Igor wants to treat all the bunnies equally, and thus he wants to cut the carrot into n pieces of equal area. 

Formally, the carrot can be viewed as an isosceles triangle with base length equal to 1 and height equal to h. Igor wants to make n - 1 cuts parallel to the base to cut the carrot into n pieces. He wants to make sure that all n pieces have the same area. Can you help Igor determine where to cut the carrot so that each piece have equal area?

<image> Illustration to the first example.

Input

The first and only line of input contains two space-separated integers, n and h (2 ≤ n ≤ 1000, 1 ≤ h ≤ 105).

Output

The output should contain n - 1 real numbers x1, x2, ..., xn - 1. The number xi denotes that the i-th cut must be made xi units away from the apex of the carrot. In addition, 0 < x1 < x2 < ... < xn - 1 < h must hold. 

Your output will be considered correct if absolute or relative error of every number in your output doesn't exceed 10 - 6.

Formally, let your answer be a, and the jury's answer be b. Your answer is considered correct if <image>.

Examples

Input

3 2


Output

1.154700538379 1.632993161855


Input

2 100000


Output

70710.678118654752

Note

Definition of isosceles triangle: <https://en.wikipedia.org/wiki/Isosceles_triangle>.

Solution (in JAVA):

Solution:
import javafx.beans.NamedArg;
import javafx.util.Pair;

import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;

import static java.lang.Math.*;

public class NNN {

    public static double getD(double a11, double a12, double a21, double a22){

        return a11 * a22 - a12 * a21;

    }

    static pair get(double k1, double x1, double y1, double k2, double x2, double y2){

        double b1 = y1 - k1 * x1;
        double b2 = y2 - k2 * x2;
        double x = (b2 - b1)/(k1 - k2);

        return new pair(x, k1 * x + b1);

    }

    static double getAng(pair a, pair b){

        return (a.f * b.f + a.s * b.s)/sqrt(a.len * b.len);

    }

    public static void main(String[] args) throws IOException {

        Reader reader = new Reader();

        int n = reader.nextInt();
        long h = reader.nextLong();

        long s = h * h;

        ArrayList<Double> ans = new ArrayList<>();


        double l = 0, r = h, c = 0;

        for (int i = 0; i < n - 1; i++){

            while (r - l > pow(10, -8)){

                c = (l + r)/2;
                double d = c * c * n -  i * s;

                if (d >= s){
                    r = c;
                }else
                    l = c;

            }

            ans.add(c);

            r = h;
            l = c;

        }

        for (double a : ans)
            System.out.print(a + " ");

    }

    static class pair extends Pair{

        long f;
        long s;
        long len;

        public pair(@NamedArg("key") Object key, @NamedArg("value") Object value) {
            super(key, value);
            f = (long) key;
            s = (long) value;
            len = f * f + s * s;
        }

    }

    static class Reader {

        final private int BUFFER_SIZE = 1 << 16, LINE_LEN = 100;
        private DataInputStream din;
        private byte[] buffer;
        private int bufferPointer, bytesRead;

        public Reader() {

            din = new DataInputStream(System.in);
            buffer = new byte[BUFFER_SIZE];
            bufferPointer = bytesRead = 0;

        }

        public Reader(String file_name) throws IOException {

            din = new DataInputStream(new FileInputStream(file_name));
            buffer = new byte[BUFFER_SIZE];
            bufferPointer = bytesRead = 0;

        }

        public String readLine() throws IOException {

            byte[] buf = new byte[LINE_LEN]; // line length
            int cnt = 0, c;

            while ((c = read()) != -1) {
                if (c == '\n')
                    break;
                buf[cnt++] = (byte) c;
            }

            return new String(buf, 0, cnt);

        }

        public int nextInt() throws IOException {

            int ret = 0;
            byte c = read();

            while (c <= ' ')
                c = read();

            boolean neg = (c == '-');

            if (neg)
                c = read();

            do
                ret = ret * 10 + c - '0';
            while ((c = read()) >= '0' && c <= '9');

            if (neg)
                return -ret;

            return ret;

        }

        public long nextLong() throws IOException {

            long ret = 0;
            byte c = read();

            while (c <= ' ')
                c = read();

            boolean neg = (c == '-');

            if (neg)
                c = read();

            do
                ret = ret * 10 + c - '0';
            while ((c = read()) >= '0' && c <= '9');

            if (neg)
                return -ret;

            return ret;

        }

        public double nextDouble() throws IOException {

            double ret = 0, div = 1;
            byte c = read();

            while (c <= ' ')
                c = read();

            boolean neg = (c == '-');

            if (neg)
                c = read();

            do
                ret = ret * 10 + c - '0';
            while ((c = read()) >= '0' && c <= '9');

            if (c == '.')
                while ((c = read()) >= '0' && c <= '9')
                    ret += (c - '0') / (div *= 10);

            if (neg)
                return -ret;

            return ret;

        }

        private void fillBuffer() throws IOException {

            bytesRead = din.read(buffer, bufferPointer = 0, BUFFER_SIZE);

            if (bytesRead == -1)
                buffer[0] = -1;

        }

        private byte read() throws IOException {

            if (bufferPointer == bytesRead)
                fillBuffer();

            return buffer[bufferPointer++];

        }

        public void close() throws IOException {

            if (din == null)
                return;

            din.close();

        }

    }

}