#include <bits/stdc++.h> using namespace std; void solve() { int n, k; cin >> n >> k; vector<int> a(n); multiset<int> s; for(int i = 0; i < n; i++) { cin >> a[i]; s.insert(a[i]); } int ans = 0; while(!s.empty()) { if(*s.begin() >= k) { s.erase(s.begin()); ans++; continue; } auto it = s.lower_bound(k - *s.begin()); if(it == s.begin()) { s.erase(s.begin()); if(s.size() > 0) { s.erase(prev(s.end())); } ans++; continue; } it--; if(it == s.begin()) { s.erase(s.begin()); if(s.size() > 0) { s.erase(prev(s.end())); } ans++; continue; } int val = *it; s.erase(s.begin()); s.erase(s.find(val)); if(s.size() > 0) { s.erase(prev(s.end())); } ans++; } cout << ans - 1 << "\n"; } int main() { ios::sync_with_stdio(false); cin.tie(0); int t; cin >> t; while(t--) { solve(); } return 0; }