#include <bits/stdc++.h>
void acopy(int a[], int l, int r, int b[]) {
  int i;
  for (i = l; i <= r; i++) b[i - l] = a[i];
}
void merge(int al[], int nl, int ar[], int nr, int a[]) {
  int i = 0, j = 0, n = 0;
  al[nl] = INT_MAX;
  ar[nr] = INT_MAX;
  while (n < nl + nr) {
    if (al[i] < ar[j]) {
      a[n] = al[i];
      i++;
    } else {
      a[n] = ar[j];
      j++;
    }
    n++;
  }
}
void sort(int a[], int n) {
  if (n == 1) return;
  int m = n / 2, nl = m, nr = n - m;
  int al[nl], ar[nr];
  acopy(a, 0, m - 1, al);
  acopy(a, m, n - 1, ar);
  sort(al, nl);
  sort(ar, nr);
  merge(al, nl, ar, nr, a);
}
double max(double x, double y) {
  if (x < y)
    return y;
  else
    return x;
}
int main() {
  int n, l;
  scanf("%d %d", &n, &l);
  int a[n], i;
  double d;
  for (i = 0; i < n; i++) scanf("%d", &a[i]);
  sort(a, n);
  d = 0;
  for (i = 0; i < n - 1; i++) {
    d = max(d, (a[i + 1] - a[i]) / 2.0);
  }
  d = max(d, a[0]);
  d = max(d, l - a[n - 1]);
  printf("%lf", d);
  return 0;
}
