#include <bits/stdc++.h>
using namespace std;
static int q, n;
static long long k;
static vector<long long> ve;
int main() {
  while (scanf("%d", &q) != EOF) {
    for (int i = 0; i < q; i++) {
      scanf("%d%I64d", &n, &k);
      ve.clear();
      ve.resize(n);
      for (int j = 0; j < n; j++) scanf("%I64d", &ve[j]);
      sort(ve.begin(), ve.end());
      if (ve.back() - ve[0] > 2 * k) {
        printf("-1\n");
      } else {
        printf("%I64d\n", ve[0] + k);
      }
    }
  }
  return 0;
}
