#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; }