#include <bits/stdc++.h>
auto& in = std::cin;
auto& out = std::cout;
int32_t N;
long double height;
long double want = 0;
long double last_x = 0;
template <typename FUNC>
double binary_search_D(double b, double e, FUNC&& f) {
  for (size_t i = 0; i < 1000; ++i) {
    auto mid = (b + e) / 2;
    if (f(mid)) {
      b = mid;
    } else {
      e = mid;
    }
  }
  return b;
}
int main() {
  using std::endl;
  in.sync_with_stdio(false);
  out.sync_with_stdio(false);
  in >> N >> height;
  want = height / 2.0 / N;
  for (int32_t i = 0; i < N - 1; ++i) {
    last_x = binary_search_D(last_x, height, [](long double X) {
      auto s = (last_x + X) / height * (X - last_x) / 2;
      return s <= want;
    });
    if (i != 0) {
      std::cout << ' ';
    }
    std::cout << std::fixed << std::setprecision(12) << last_x;
  }
  std::cout << std::endl;
  return 0;
}
