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 PYTHON3):

Solution:
import math
global H
n, H = (int(x) for x in input().split())

def get_l(h):
    return ((H - h) / H)

def s_trap(l1, l2, h):
    return(((l1 + l2) / 2) * h)

def get_new_h(l, h, s):
    min_h = 0
    max_h = h
    eps = 1e-7
    while max_h - min_h > eps:
        mid_h = (max_h + min_h) / 2
        mid_l = get_l(mid_h)
        mid_s = s_trap(1, mid_l, mid_h)
        # print(mid_s)
        if mid_s > s:
            max_h = mid_h
        else:
            min_h = mid_h
    return (min_h + max_h) / 2
    
# def get_eq(l1, l2, h, n):
    # a = l2 - l1
    # b = l1
    # c = -(l1 + l2) / n
    # return(a, b, c)
    
# def solve_eq(a, b, c):
    # return (-b + math.sqrt(b * b - 4 * a * c)) / (2 * a)

# def next_h(l1, l2, h, n):
    # c = solve_eq(*get_eq(l1, l2, h, n))
    # return (1 - c) * h
    
# def next_pos(l1, l2, h, n):
    # new_h = next_h(l1, l2, h, n)
    # c = solve_eq(*get_eq(l1, l2, h, n))
    # new_l1 = (1 - c) * l1 + c * l2
    # return(new_l1, l2, new_h, n - 1)
    
# s_needed = (h / 2) / n
# x_curr = h / (n ** 0.5)
# h_curr = h - x
# l_curr = (2 * s_needed) / h_curr
# list_of_h = [h_curr]
l = 0 #upper edge
s = H / (2 * n)
h = H
list_of_h = []
while n > 1:
    n -= 1
    h = get_new_h(l, h, s * n)
    l = get_l(h)
    list_of_h.append(H - h)
    
print(*list_of_h)