#include <algorithm>
#include <iostream>
#include <vector>

void solve() {
	int n, k;
	std::cin >> n >> k;

	std::vector<int> a(n);

	for (int i = 0; i < n; ++i) {
		std::cin >> a[i];
	}

	std::sort(a.begin(), a.end());

	std::vector<bool> used(n, false);

	int pairs = 0;

	for (int l = 0, r = n - 1; l < r; ++l) {
		while (l < r && a[l] + a[r] >= k) {
			--r;
		}
		if (l >= r) break;
		pairs += 1;
		used[l] = true;
		used[r] = true;
		--r;
	}

	int single = 0;
	int too_long = 0;

	for (int i = 0; i < n; ++i) {
		if (used[i]) continue;
		if (a[i] < k) {
			single += 1;
		}
		else {
			too_long += 1;
		}
	}

	//std::cout << pairs << ' ' << single << ' ' << too_long << ' ';

	int ans = 0;

	while (too_long >= 1 && pairs >= 1) {
		--too_long;
		--pairs;
		++ans;
	}

	while (too_long >= 1 && single >= 1) {
		--too_long;
		--single;
		++ans;
	}

	while (single >= 1 && pairs >= 1) {
		--single;
		--pairs;
		++ans;
	}

	while (pairs >= 3) {
		ans += 2;
		pairs -= 3;
	}

	ans += pairs + single + too_long;

	std::cout << ans - 1 << '\n';
}

int main() {
	int t;
	std::cin >> t;

	while (t--) {
		solve();
	}

	return 0;
}