#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

int main()
{
int n,s;
int MAX = 1e10;
scanf("%d%d",&n,&s);
vector<int> Input;
int Result = MAX;
for(int i = 0;i < n;i ++){
int tmp;
scanf("%d",&tmp);
Input.push_back(tmp);
}
sort(Input.begin(),Input.end());
for(int i = 0;i < Input.size() - 1;i ++){
int Left = min(Input[0] + s,Input[i + 1] - s);
int Right = max(Input[i] + s,Input[Input.size() - 1] - s);
Result = min(Result,Right - Left);
}
printf("%d\n",Result);
return 0;
}