#include <bits/stdc++.h>

using namespace std;

int main() {
    int T;
    cin >> T;

    while (T--) {
        int n, k;
        cin >> n >> k;

        vector<int> d(n);
        vector<bool> taken(n, false);
        for (int i = 0; i < n; i++)
        {
            cin >> d[i];
        }
        
        sort(d.begin(), d.end());

        int j = n - 1;
        int p = 0;
        for (int i = 0; i < n; i++)
        {
            while (j > i && (taken[j] || d[i] + d[j] >= k)) {
                j--;
            }
            if (j <= i) break;
            taken[i] = true;
            taken[j] = true;
            p++;
        }

        if (p >= (n + 2) / 3) {
            cout << (n + 2) / 3 - 1 << "\n";
            continue;
        }
        
        int c = 0;
        for (int i = n; i >= 0; i--) {
            if (c >= p) break;
            if (!taken[i]) {
                taken[i] = true;
                c++;
            }
        }

        int s = 0, l = 0;
        for (int i = 0; i < n; i++)
        {
            if (taken[i]) continue;
            (d[i] < k ? s : l)++;
        }
        
        p += (l > s ? l : (s + l + 1) / 2);
        
        cout << p - 1 << "\n";
    }

    cout << endl;
}