#include using namespace std; int read(){ int tot=0,fh=1; char c=getchar(); while ((c<'0')||(c>'9')){ if (c=='-') fh=-1; c=getchar(); } while ((c>='0')&&(c<='9')){ tot=tot*10+c-'0'; c=getchar(); } return tot*fh; } const int maxn=100010; int T,opt; int n,m,ans; int i,j,k; int a[maxn],b[maxn]; int main(){ T=read(); for (opt=1;opt<=T;opt++){ n=read(); m=read(); for (i=1;i<=n;i++) a[i]=read(); sort(a+1,a+n+1); b[0]=-1e9; for (i=1;i<=n;i++){ if (a[i]-m<=b[i-1]){ b[i]=min(a[i]+m,b[i-1]+1); } else b[i]=a[i]-m; } ans=1; for (i=2;i<=n;i++){ if (b[i]!=b[i-1]) ans++; } printf("%d\n",ans); } return 0; }