#include <bits/stdc++.h>
using namespace std;
int maxint = numeric_limits<int>::max();
bool sortbysec(const pair<int, int>& a, const pair<int, int>& b) {
  return (a.second < b.second);
}
long long bino(int n, int m) {
  long long j = 1;
  for (int i = 0; i < m; i++) j = j * (n - i) / (i + 1);
  return j;
}
long long int fast_power(long long int a, long long int x) {
  if (x == 0)
    return 1;
  else if (x == 1)
    return a;
  else {
    long long int R = fast_power(a, x >> 1);
    if (!(x & 1))
      return R * R;
    else
      return R * a * R;
  }
}
bool cmp(pair<char, long long int>& a, pair<char, long long int>& b) {
  return a.second > b.second;
}
long double distance1(long long int x1, long long int y1, long long int x2,
                      long long int y2) {
  return sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2) * 1.0);
}
const int N = 1e6 + 5;
long long int binpow(long long int a, long long int b) {
  long long int res = 1;
  while (b > 0) {
    if (b & 1) res = res * a;
    a = a * a;
    b >>= 1;
  }
  return res;
}
long long int gcd(long long int a, long long int b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
void solve() {
  long long int n, c = 0, m, x = 0;
  cin >> n >> m;
  long long int a[n];
  for (long long int i = 0; i < n; i++) cin >> a[i];
  sort(a, a + n);
  reverse(a, a + n);
  map<long long int, long long int> ma;
  for (long long int i = 0; i < n; i++) {
    if (ma[a[i]] == 0 && a[i] - x > 0) {
      ma[a[i]]++;
      x += m;
      c++;
    } else if (a[i] - x <= 0) {
      break;
    }
  }
  cout << c << "\n";
}
int main() {
  ios_base::sync_with_stdio(false);
  long long int t = 1;
  cin >> t;
  while (t--) {
    solve();
  }
  return 0;
}
