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

using vi = vector<int>;
using vvi = vector<vi>;
using pii = pair<int ,int>;
using vpii = vector<pair<int, int>>;
using pipii = pair<int, pii>;

void solve() {
    int n, k;
    cin >> n >> k;
    vi a(n);
    for(int i = 0; i < n; i++) {
        cin >> a[i];
    }
    sort(a.begin(), a.end());
    int pairs = 0;
    vi paired(n);
    int j = n-1;
    for(int i = 0; i < n; i++) {
        while(i < j && a[i] + a[j] >= k) {
            j--;
        }
        if(i < j) {
            paired[i] = paired[j] = true;
            pairs++;
            j--;
        }
    }
    vi remaining;
    for(int i = 0; i < n; i++) {
        if(!paired[i]) {
            remaining.push_back(a[i]);
        }
    }
    int left = remaining.size();
    // cerr << pairs << endl;
    if(pairs >= left) {
        cout << (n-1)/3 << endl;
        return;
    }
    sort(remaining.begin(), remaining.end());
    int unpaired = left - pairs;
    assert(unpaired > 0);
    int safe = 0;
    for(int i = 0; i < unpaired; i++) {
        if(remaining[i] < k) {
            safe++;
        }
    }
    // cerr << safe << ' ' << unpaired << endl;
    if(safe * 2 < unpaired) {
        cout << pairs + safe + unpaired - (safe * 2) - 1 << endl;
    } else {
        cout << pairs + ((safe-1) / 2) << endl;
    }
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    int tc;
    cin >> tc;
    while(tc--) {
        solve();
    }
    return 0;
}