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