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

using ll = long long;
#define int ll
using pii = pair<int, int>;

void solve() {
    int n, k;
    cin>>n>>k;
    vector<int> a(n);
    multiset<int> st;
    for(int i = 0; i < n; i++)
    {
        cin>>a[i];
        st.insert(a[i]);
    }
    sort(a.begin(), a.end());
    int res = 0;
    vector<int> us(n);
    deque<int> r;
    int ind = 0;
    for(int i = n - 1; i >= 0; i--)
    {
        auto P = st.find(a[i]);
        if(P == st.end()) continue;
        st.erase(P);
        auto R = st.lower_bound(k - a[i]);
        if(R != st.begin())
        {
            R = prev(R);
            // cout<<"+ "<<a[i]<<" "<<*R<<endl;
            if(a[i] + *R < k)
            {
                res++;
                st.erase(R);
                if(!r.empty())
                {
                    r.pop_front();
                }
                else
                if(!st.empty())
                {
                    st.erase(prev(st.end()));
                }
            }
            else 
                r.push_back(a[i]);
        }
        else
        {
            r.push_back(a[i]);
        }
    }

    while(!r.empty())
    {
        if(r.back() < k)
        {
            if(r.size() > 1)
            {
                r.pop_front();
            }
            res++;
            r.pop_back();
        }
        else 
        {
            r.pop_back();
            res++;
        }
    }
    cout<<res - 1<<'\n';
}

int32_t main() {
    cin.tie(0);
    cout.tie(0);
    ios_base::sync_with_stdio(0);

    int tt = 1;
    cin >> tt;
    for (int t = 0; t < tt; t++) {
        solve();
    }
    return 0;
}