#include <iostream>
using namespace std;
bool czy_wszystkie(int tab[],int n)
{
for (int i = 0; i < n;i++)
{
if (tab[i] != 0)
{
return false;
}
}
return true;
}
int najwieksz(int tab[], int n)
{
int naj{0};
int xd{0};
for (int i = 0; i < n;i++)
{
if ((tab[i] > naj)&&(tab[i] != 0))
{
naj = tab[i];
xd = i;
}
}
return xd;
}
int najmniejsza(int tab[], int n)
{
int naj{1001};
int xd{0};
for (int i = 0; i < n;i++)
{
if ((tab[i] < naj)&&(tab[i] != 0))
{
naj = tab[i];
xd = i;
}
}
return xd;
}
int main()
{
int t;
cin >> t;
for (int i = 0; i < t; i++)
{
int n,k;
cin >> n >> k;
int tab[n];
for (int j = 0; j < n; j++)
{
cin >> tab[j];
}
int pudla{0};
for (int j = 0; j < n; j++)
{
if (tab[najwieksz(tab,n)] + tab[najmniejsza(tab,n)] <= k)
{
tab[najwieksz(tab,n)] = 0;
tab[najmniejsza(tab,n)] = 0;
pudla++;
}
else
{
tab[najwieksz(tab,n)] = 0;
pudla++;
}
if (czy_wszystkie(tab,n))
{
cout << pudla << endl;
break;
}
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmJvb2wgY3p5X3dzenlzdGtpZShpbnQgdGFiW10saW50IG4pCnsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjtpKyspCiAgICB7CiAgICAgICAgaWYgKHRhYltpXSAhPSAwKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiB0cnVlOwp9CgppbnQgbmFqd2lla3N6KGludCB0YWJbXSwgaW50IG4pCnsKICAgIGludCBuYWp7MH07CiAgICBpbnQgeGR7MH07CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47aSsrKQogICAgewogICAgICAgIGlmICgodGFiW2ldID4gbmFqKSYmKHRhYltpXSAhPSAwKSkKICAgICAgICB7CiAgICAgICAgICAgIG5haiA9IHRhYltpXTsKICAgICAgICAgICAgeGQgPSBpOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiB4ZDsKfQoKaW50IG5ham1uaWVqc3phKGludCB0YWJbXSwgaW50IG4pCnsKICAgIGludCBuYWp7MTAwMX07CiAgICBpbnQgeGR7MH07CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47aSsrKQogICAgewogICAgICAgIGlmICgodGFiW2ldIDwgbmFqKSYmKHRhYltpXSAhPSAwKSkKICAgICAgICB7CiAgICAgICAgICAgIG5haiA9IHRhYltpXTsKICAgICAgICAgICAgeGQgPSBpOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiB4ZDsKfQoKaW50IG1haW4oKQp7CiAgICBpbnQgdDsKICAgIGNpbiA+PiB0OwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0OyBpKyspCiAgICB7CiAgICAgICAgaW50IG4sazsKICAgICAgICBjaW4gPj4gbiA+PiBrOwogICAgICAgIGludCB0YWJbbl07CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBuOyBqKyspCiAgICAgICAgewogICAgICAgICAgICBjaW4gPj4gdGFiW2pdOwogICAgICAgIH0KICAgICAgICBpbnQgcHVkbGF7MH07CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBuOyBqKyspCiAgICAgICAgewogICAgICAgICAgICBpZiAodGFiW25handpZWtzeih0YWIsbildICsgdGFiW25ham1uaWVqc3phKHRhYixuKV0gPD0gaykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdGFiW25handpZWtzeih0YWIsbildID0gMDsKICAgICAgICAgICAgICAgIHRhYltuYWptbmllanN6YSh0YWIsbildID0gMDsKCiAgICAgICAgICAgICAgICBwdWRsYSsrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdGFiW25handpZWtzeih0YWIsbildID0gMDsKICAgICAgICAgICAgICAgIHB1ZGxhKys7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChjenlfd3N6eXN0a2llKHRhYixuKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY291dCA8PCBwdWRsYSA8PCBlbmRsOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gMDsKfQ==