#include <bits/stdc++.h>
using namespace std;
const int inf = 1e9;
int n, len;
vector<int> vec;
bool isgood(long double x) {
  for (int i = 0; i < n - 1; ++i) {
    if ((2 * x) < (vec[i + 1] - vec[i])) return false;
  }
  if (vec[n - 1] + x < len) return false;
  if (x < vec[0]) return false;
  return true;
}
int main() {
  cin >> n >> len;
  vec.resize(n, 0);
  for (int i = 0; i < n; ++i) {
    cin >> vec[i];
  }
  sort(vec.begin(), vec.end());
  long double l = 0;
  long double r = len;
  for (int i = 0; i < 100; ++i) {
    long double m = (l + r) / 2;
    if (isgood(m)) {
      r = m;
    } else {
      l = m;
    }
  }
  cout << setprecision(20);
  cout << l << endl;
  return 0;
}
