#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, l;
  double maximum = 0.0, a;
  cin >> n >> l;
  vector<int> lant(n);
  for (int i = 0; i < n; i++) cin >> lant[i];
  sort(lant.begin(), lant.end());
  for (int j = 0; j < n - 1; j++) {
    a = abs(lant[j] - lant[j + 1]);
    maximum = max(a, maximum);
  }
  double smallest = INT_MAX;
  for (int i = 0; i < n; i++) {
    if (lant[i] < smallest) smallest = lant[i];
  }
  double largest = -1;
  for (int i = 0; i < n; i++) {
    if (lant[i] > largest) largest = lant[i];
  }
  double max1 = max(smallest, l - largest);
  maximum = max(max1, maximum / 2);
  cout << setprecision(15) << fixed << maximum;
  return 0;
}
