#include <bits/stdc++.h>
const double EPS = 1e-9;
const int MOD = 1000 * 1000 * 1000 + 7;
const int INF = 2000 * 1000 * 1000;
using namespace std;
int popcount(int n) {
  bitset<32> b(n);
  return b.count();
}
int n, l;
deque<double> a;
bool valid(double d) {
  for (int i = 0; i < a.size() - 1; i++) {
    if (abs(a[i] - a[i + 1]) / 2.0 <= d)
      continue;
    else
      return false;
  }
  return true;
}
inline int bs(int s, int e) {
  while (s < e) {
    int mid = (s + (e - s) / 2);
    if (valid(mid))
      e = mid;
    else
      s = mid + 1;
  }
  return s;
}
inline double b_s(double s, double e) {
  for (double size = (e - s) / 2; size > 1e-9; size *= .5)
    if (valid(s - size)) s -= size;
  return s;
}
int main() {
  int temp;
  cin >> n >> l;
  for (int i = 0; i < n; i++) {
    cin >> temp;
    a.push_back(temp);
  }
  sort(a.begin(), a.end());
  if (a[0] != 0) a.push_front(-a[0]);
  if (a[a.size() - 1] != l) a.push_back(2 * l - a[a.size() - 1]);
  int bs1 = bs(0, 1e9);
  double bs2 = b_s(bs1, 1e9);
  std::cout << std::setprecision(10) << bs2 << "\n";
  return 0;
}
