#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int t;
cin >> t;
while (t--) {
int n, k;
cin >> n >> k;
vector<int> a(n);
for (int i = 0; i < n; i++) {
cin >> a[i];
}
sort(a.begin(), a.end());
int min_diff = a[n - 1] - a[0];
int min_height = a[0] + k;
int max_height = a[n - 1] - k;
if (min_height > max_height) {
swap(min_height, max_height);
}
for (int i = 1; i < n - 1; i++) {
int subtract = a[i] - k;
int add = a[i] + k;
if (subtract >= min_height || add <= max_height) {
continue;
}
if (max_height - subtract <= add - min_height) {
min_height = subtract;
} else {
max_height = add;
}
}
cout << min(min_diff, max_height - min_height) << endl;
}
return 0;
}