#include <bits/stdc++.h>
using namespace std;
int X[1000];
double Y[1000];
bool abajo[1000];
int main() {
  int n, r, i, j;
  double y;
  scanf("%d%d", &n, &r);
  for (i = 0; i < n; ++i) scanf("%d", &X[i]);
  memset(abajo, 0, sizeof abajo);
  for (i = 0; i < n; ++i) {
    Y[i] = r;
    for (j = 0; j < n; ++j)
      if (abajo[j] && abs(X[i] - X[j]) <= 2 * r) {
        y = Y[j] + sqrt(4 * r * r - (X[i] - X[j]) * (X[i] - X[j]));
        Y[i] = max(Y[i], y);
      }
    abajo[i] = true;
  }
  for (i = 0; i < n; ++i) printf("%.11lf ", Y[i]);
  return 0;
}
