//{ Driver Code Starts
#include<bits/stdc++.h>
using namespace std;
bool findPair(int arr[], int size, int n);
int main()
{
int t;
cin>>t;
while(t--)
{
int l,n;
cin>>l>>n;
int arr[l];
for(int i=0;i<l;i++)
cin>>arr[i];
if(findPair(arr, l, n))
cout<<1<<endl;
else cout<<"-1"<<endl;
}
return 0;
}
// } Driver Code Ends
bool findPair(int arr[], int size, int n){
//code
unordered_map<int, int> m;
for(auto i = 0; i < size; ++i){
++m[arr[i]];
if(n == 0 && m[arr[i]] > 1) return true;
}
if(n == 0) return false;
sort(arr, arr + size);
for(auto i = 0; i < size; ++i){
int begin{0}, end{size - 1}, temp{arr[i] + n};
while(begin <= end){
auto mid = begin + (end - begin) / 2;
if(arr[mid] == temp) return true;
else if(arr[mid] < temp){
begin = mid + 1;
}else end = mid - 1;
}
}
return false;
}
Ly97IERyaXZlciBDb2RlIFN0YXJ0cwojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgogCnVzaW5nIG5hbWVzcGFjZSBzdGQ7IAoKCmJvb2wgZmluZFBhaXIoaW50IGFycltdLCBpbnQgc2l6ZSwgaW50IG4pOwoKaW50IG1haW4oKQp7CiAgICBpbnQgdDsKICAgIGNpbj4+dDsKICAgIHdoaWxlKHQtLSkKICAgIHsKICAgICAgICBpbnQgbCxuOwogICAgICAgIGNpbj4+bD4+bjsKICAgICAgICBpbnQgYXJyW2xdOwogICAgICAgIGZvcihpbnQgaT0wO2k8bDtpKyspCiAgICAgICAgICAgIGNpbj4+YXJyW2ldOwogICAgICAgIGlmKGZpbmRQYWlyKGFyciwgbCwgbikpCiAgICAgICAgICAgIGNvdXQ8PDE8PGVuZGw7CiAgICAgICAgZWxzZSBjb3V0PDwiLTEiPDxlbmRsOwogICAgfQogICAgCiAgCiAgICByZXR1cm4gMDsKfQovLyB9IERyaXZlciBDb2RlIEVuZHMKCgpib29sIGZpbmRQYWlyKGludCBhcnJbXSwgaW50IHNpemUsIGludCBuKXsKICAgIC8vY29kZQogICAgICAgIHVub3JkZXJlZF9tYXA8aW50LCBpbnQ+IG07CiAgICBmb3IoYXV0byBpID0gMDsgaSA8IHNpemU7ICsraSl7CiAgICAJKyttW2FycltpXV07CiAgICAJaWYobiA9PSAwICYmIG1bYXJyW2ldXSA+IDEpIHJldHVybiB0cnVlOwogICAgfQogICAgaWYobiA9PSAwKSByZXR1cm4gZmFsc2U7CiAgICBzb3J0KGFyciwgYXJyICsgc2l6ZSk7CiAgICBmb3IoYXV0byBpID0gMDsgaSA8IHNpemU7ICsraSl7CiAgICAJaW50IGJlZ2luezB9LCBlbmR7c2l6ZSAtIDF9LCB0ZW1we2FycltpXSArIG59OwogICAgCXdoaWxlKGJlZ2luIDw9IGVuZCl7CiAgICAJCWF1dG8gbWlkID0gYmVnaW4gKyAoZW5kIC0gYmVnaW4pIC8gMjsKICAgIAkJaWYoYXJyW21pZF0gPT0gdGVtcCkgcmV0dXJuIHRydWU7CiAgICAJCWVsc2UgaWYoYXJyW21pZF0gPCB0ZW1wKXsKICAgIAkJCWJlZ2luID0gbWlkICsgMTsKICAgIAkJfWVsc2UgZW5kID0gbWlkIC0gMTsKICAgIAl9CiAgICB9CiAgICByZXR1cm4gZmFsc2U7CiAgICAKfQ==