#include <bits/stdc++.h>
using namespace std;

void solve() {
    int n, k;
    cin >> n >> k;
    multiset<int> s;
    for (int i = 0; i < n; i++) {
        int x; cin >> x;
        s.insert(x);
    }


    int ans = 0;
    while (!s.empty()) {
        int mn = *s.begin();
        s.erase(s.begin());

        if (mn >= k || s.empty()) {
            ans++;
        } else {
            auto it = s.upper_bound(k - 1 - mn);
            if (it != s.begin()) it--;

            if (mn + *it >= k) {
                s.erase(s.find(*s.rbegin()));
                ans++;
            } else {
                s.erase(it);
                if (!s.empty()) s.erase(s.find(*s.rbegin()));
                ans++;
            }
        }
    }

    cout << ans - 1 << endl;
}

int main() {
    cin.tie(0)->sync_with_stdio(0);
    int tt; cin >> tt;
    while (tt--) solve();
    return 0;
}