#include <iostream>
using namespace std;
int main() {
int t, n, x, i, p;
cin >> t;
while(t-->0){
cin >> n >> x;
int a[x] = {0};
while(n-->0){
cin >> i;
if(i>x-1) continue;
a[i]++;
}
p=0;
cout << x/2 << endl;
cout << a[3] << ' ' << a[x-3] << endl;
for(i=1; i<=x/2 && (a[i]>0 && a[x-i]>0); ++i){
n = a[x-i];
cout << a[i] << ' ' << n << endl;
if(x==(i<<1)) p += ((n*(n-1))>>1);
else p += a[i]*n;
}
for(i=0; i<x; ++i){
cout << a[i] << ' ';
}
cout << endl;
cout << p << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CglpbnQgdCwgbiwgeCwgaSwgcDsKCWNpbiA+PiB0OwoJd2hpbGUodC0tPjApewoJICAgIGNpbiA+PiBuID4+IHg7CgkgICAgaW50IGFbeF0gPSB7MH07CgkgICAgd2hpbGUobi0tPjApewoJICAgICAgICBjaW4gPj4gaTsKCSAgICAgICAgaWYoaT54LTEpIGNvbnRpbnVlOwoJICAgICAgICBhW2ldKys7CgkgICAgfQoJICAgIHA9MDsKCSAgICBjb3V0IDw8IHgvMiA8PCBlbmRsOwoJICAgIGNvdXQgPDwgYVszXSA8PCAnICcgPDwgYVt4LTNdIDw8IGVuZGw7CgkgICAgZm9yKGk9MTsgaTw9eC8yICYmIChhW2ldPjAgJiYgYVt4LWldPjApOyArK2kpewoJICAgICAgICBuID0gYVt4LWldOwoJICAgICAgICBjb3V0IDw8IGFbaV0gPDwgJyAnIDw8IG4gPDwgZW5kbDsKCSAgICAgICAgaWYoeD09KGk8PDEpKSBwICs9ICgobioobi0xKSk+PjEpOwoJICAgICAgICBlbHNlIHAgKz0gYVtpXSpuOwoJICAgIH0KCSAgICBmb3IoaT0wOyBpPHg7ICsraSl7CgkgICAgICAgIGNvdXQgPDwgYVtpXSA8PCAnICc7CgkgICAgfQoJICAgIGNvdXQgPDwgZW5kbDsKCSAgICBjb3V0IDw8IHAgPDwgZW5kbDsKCX0KCXJldHVybiAwOwp9
MQo0OSA1MAo0OCAyNCA5OSA1MSAzMyAzOSAyOSA4MyA3NCA3MiAyMiA0NiA0MCA1MSA2NyAzNyA3OCA3NiAyNiAyOCA3NiAyNSAxMCA2NSA2NCA0NyAzNCA4OCAyNiA0OSA4NiA3MyA3MyAzNiA3NSA1IDI2IDQgMzkgOTkgMjcgMTIgOTcgNjcgNjMgMTUgMyA5MiA5MA==
1
49 50
48 24 99 51 33 39 29 83 74 72 22 46 40 51 67 37 78 76 26 28 76 25 10 65 64 47 34 88 26 49 86 73 73 36 75 5 26 4 39 99 27 12 97 67 63 15 3 92 90