#include <bits/stdc++.h>
using namespace std;
int ab(int n) { return (n >= 0) ? n : -n; }
int lg2(int num) {
  int targetlevel = 0;
  while (num >>= 1) ++targetlevel;
  return targetlevel;
}
void solve() {
  int length, numOfLanterns;
  cin >> numOfLanterns >> length;
  vector<int> lanternPositions(numOfLanterns + 2);
  int leftmostLantern = INT_MAX, rightmostLantern = INT_MIN;
  for (int i = 0; i < numOfLanterns; i++) {
    cin >> lanternPositions[i + 1];
    if (lanternPositions[i + 1] < leftmostLantern)
      leftmostLantern = lanternPositions[i + 1];
    if (lanternPositions[i + 1] > rightmostLantern)
      rightmostLantern = lanternPositions[i + 1];
  }
  lanternPositions[0] = -leftmostLantern;
  lanternPositions[numOfLanterns + 1] = 2 * length - rightmostLantern;
  sort(lanternPositions.begin(), lanternPositions.end());
  int maximumGap = INT_MIN;
  for (int i = 0; i <= numOfLanterns; i++) {
    int currentGap = lanternPositions[i + 1] - lanternPositions[i];
    if (maximumGap < currentGap) maximumGap = currentGap;
  };
  double answer = maximumGap / 2.0;
  cout << fixed << setprecision(10) << answer << endl;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  solve();
}
