#pragma GCC optimize("Ofast","inline","-ffast-math") #pragma GCC target("avx,sse2,sse3,sse4,mmx") #include #include #include #define INF 1000000007 using namespace __gnu_pbds; using namespace std; struct custom_hash { static uint64_t splitmix64(uint64_t x) { x += 0x9e3779b97f4a7c15; x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; x = (x ^ (x >> 27)) * 0x94d049bb133111eb; return x ^ (x >> 31); } size_t operator()(uint64_t x) const { static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); return splitmix64(x + FIXED_RANDOM); } }; int n,k,a[100010]; pair c[100010]; signed main() { ios::sync_with_stdio(false); int t;cin>>t; while(t--){ cin>>n>>k; for(int i=1;i<=n;i++) cin>>a[i],c[i]=make_pair(a[i]-k,a[i]+k); sort(c+1,c+n+1); int ans=0,pre=-INF; for(int i=1;i<=n;i++){ pre=max(pre,c[i].first); if(pre<=c[i].second) ans++,pre++; } cout<