#include <bits/stdc++.h>
using namespace std;
int main() {
  vector<int> q;
  int n, l;
  cin >> n >> l;
  int w = n;
  while (w--) {
    int x;
    cin >> x;
    q.push_back(x);
  }
  sort(q.begin(), q.end());
  double ans = 0;
  if (q[0] == 0 && q[n - 1] == l)
    for (int i = 0; i < n - 1; i++) {
      ans = max(ans, ((q[i + 1] - q[i]) / 2.0));
    }
  else if (q[n - 1] == l) {
    ans = q[0];
    for (int i = 0; i < n - 1; i++) {
      ans = max(ans, ((q[i + 1] - q[i]) / 2.0));
    }
  } else if (q[0] == 0) {
    if (n - 2 >= 0)
      ans = q[n - 1] - q[n - 2];
    else
      ans = l;
    for (int i = 0; i < n - 1; i++) {
      ans = max(ans, ((q[i + 1] - q[i]) / 2.0));
    }
  } else {
    ans = max(q[0], l - q[n - 1]);
    for (int i = 0; i < n - 1; i++) ans = max(ans, ((q[i + 1] - q[i]) / 2.0));
  }
  printf("%.9lf\n", ans);
}
