#include #define broken cerr << "running on " << __FUNCTION__ <<" "<< __LINE__ << endl #define x first #define y second #define mp make_pair #define sz(a) int((a).size()) #define par pair #define poly vector #define i64 long long #define u64 unsigned long long using namespace std; const int N = 1e5 + 10; int n, a[N], k; set s; void solve() { s.clear(); cin >> n >> k; for(int i = 1; i <= n; i++) cin >> a[i]; sort(a + 1, a + n + 1); for(int i = 1; i <= n; i++) { auto it = s.upper_bound(a[i] + k); if(it == s.begin()) { s.insert(a[i] - k); } else { it--; if(*it < a[i] - k) s.insert(a[i] - k); else { if(*it == a[i] + k) continue; else { int num = *it; s.insert(num + 1); } } } } cout << s.size() << endl; return; } int main() { int T; cin >> T; while(T--) solve(); return 0; }