#include <bits/stdc++.h>
using namespace std;
int N, L, A[1020], dist[1020], aux, distmax;
double d, rs1;
bool a = false, b = false;
bool comp(int a, int b) { return a < b; }
int main() {
  cout.precision(10);
  cin >> N >> L;
  for (int i = 1; i <= N; i++) cin >> A[i];
  int minim = A[1], maxim = A[1];
  for (int i = 1; i <= N; i++) {
    if (A[i] > maxim) maxim = A[i];
    if (A[i] < minim) minim = A[i];
  }
  for (int i = 1; i <= N; i++) {
    if (A[i] == 0) a = true;
    if (A[i] == L) b = true;
  }
  sort(A + 1, A + N + 1, comp);
  for (int i = 1; i <= N - 1; i++) dist[++aux] = A[i + 1] - A[i];
  distmax = dist[1];
  for (int i = 1; i <= aux; i++)
    if (dist[i] > distmax) distmax = dist[i];
  rs1 = 1.0 * distmax / 2.0;
  if (a == false && b == false)
    d = max(double(max((L - maxim), minim)), rs1);
  else if (a == false && b == true)
    d = max(double(minim), rs1);
  else if (a == true && b == false)
    d = max(double((L - maxim)), rs1);
  else
    d = rs1;
  cout << fixed << d;
  return 0;
}
