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

int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    int t;
    cin>>t;
    while(t--){
        int n,k;
        cin>>n>>k;

        int cont=0;
        multiset<int> ds;
        for(int i=0;i<n;i++){
            int x;
            cin>>x;
            ds.insert(x);
        }

        vector<int> rim;
        while(!ds.empty() && cont<rim.size()+ds.size()){
            int x = *ds.rbegin();
            ds.erase(ds.find(x));
            auto it = ds.lower_bound(k-x);
            if(it==ds.begin()){
                rim.push_back(x);
            }else{
                it--;
                cont++;

                //cout<<x<<" con "<<*it<<"\n";
                ds.erase(it);
            }
        }
        
        for(auto i : ds)rim.push_back(i);
        sort(rim.rbegin(),rim.rend());

        int num=cont,ind=0;
        while(ind<rim.size() && num>0){
            ind++;
            num--;
        }

        int numrim = rim.size()-ind, cont2=0;
        while(ind<rim.size() && rim[ind]>=k){
            if(rim[ind]>k)cont2++;
            ind++;
        }

        cont+=max((numrim+1)/2,cont2);
        cout<<cont-1<<"\n";
    }
}