#include <bits/stdc++.h>
using namespace std;
int n, s1, s2, ans, x[100001];
bool pan(int mid) {
  set<int> st;
  st.insert(s1);
  st.insert(s2);
  for (int i = 1; i <= n; i++) {
    while (!st.empty() && abs(*st.begin() - x[i]) > mid) {
      st.erase(st.begin());
    }
    if (st.empty()) return 0;
    while (!st.empty() && abs(*(--st.end()) - x[i]) > mid) {
      st.erase(--st.end());
    }
    if (st.empty()) return 0;
    st.insert(x[i]);
  }
  return 1;
}
int main() {
  ios::sync_with_stdio(false);
  cin >> n >> s1 >> s2;
  for (int i = 1; i <= n; i++) cin >> x[i];
  int l = abs(s2 - s1), r = 1e9;
  while (l <= r) {
    int mid = (l + r) >> 1;
    if (pan(mid)) {
      ans = mid;
      r = mid - 1;
    } else
      l = mid + 1;
  }
  cout << ans;
  return 0;
}
