#include <bits/stdc++.h>
using namespace std;
int A[200000], n, s1, s2;
bool OK(int x) {
  set<int> S;
  S.insert(s1);
  S.insert(s2);
  for (int i = 0; i < n; i++) {
    while (S.size() && abs(A[i] - *S.begin()) > x) S.erase(*S.begin());
    while (S.size() && abs(A[i] - *S.rbegin()) > x) S.erase(*S.rbegin());
    if (!S.size()) return 0;
    S.insert(A[i]);
  }
  return 1;
}
int main() {
  cin >> n >> s1 >> s2;
  for (int i = 0; i < n; i++) cin >> A[i];
  int H = 1e9 + 10, L = abs(s1 - s2) - 1, M;
  while (H - L > 1) {
    M = (H + L) >> 1;
    if (OK(M))
      H = M;
    else
      L = M;
  }
  cout << H;
  return (0);
}
