#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, a[1001], l, old = 0, New, max = 0;
  cin >> n;
  cin >> l;
  a[0] = 0;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
  }
  for (int i = 1; i <= n; i++) {
    for (int j = i + 1; j <= n; j++) {
      if (a[j] < a[i]) {
        int temp = a[i];
        a[i] = a[j];
        a[j] = temp;
      }
    }
  }
  int k = 1;
  while (k <= n && a[k] <= l) {
    if (a[k] - a[k - 1] > max) {
      max = a[k] - a[k - 1];
      if (k - 1 == 0) max *= 2;
    }
    k++;
  }
  if (k <= n && a[k] > l) {
    if (l - a[k - 1] < a[k] - l) {
      if (l - a[k - 1] > max) max = 2 * (l - a[k - 1]);
    } else {
      if (a[k] - a[k - 1] > max) max = a[k] - a[k - 1];
    }
  }
  if (a[k - 1] < l) {
    if (2 * (l - a[k - 1]) > max) max = 2 * (l - a[k - 1]);
  }
  cout.setf(ios::floatfield, ios::fixed);
  cout.precision(10);
  cout << (double)max / 2;
  return 0;
}
