#include <bits/stdc++.h>
using namespace std;
int find_min_cost(vector<int>& a, int k) {
int n = a.size();
vector<int> indices;
vector<pair<int, int>> sorted_a;
for (int i = 0; i < n; i++) {
sorted_a.push_back({a[i], i});
}
sort(sorted_a.begin(), sorted_a.end());
set<int> cut_points;
for (int i = 0; i < k - 1; i++) {
cut_points.insert(sorted_a[i].second);
}
vector<int> b;
vector<int> subarray;
int part = 1;
for (int i = 0; i < n; i++) {
subarray.push_back(a[i]);
if (cut_points.count(i) || i == n - 1) {
if (part % 2 == 0) {
b.insert(b.end(), subarray.begin(), subarray.end());
}
subarray.clear();
part++;
}
}
// Step 3: Append 0 at the end of b
b.push_back(0);
// Step 4: Compute the cost
int cost = 0;
for (int i = 0; i < b.size(); i++) {
cout << b[i] << ' ';
if (b[i] != i) {
cost = i;
break;
}
}
return cost;
}
int main() {
int t;
cin >> t;
while(t--){
int n, k;
cin >> n >> k;
vector<int> a(n);
for (int i = 0; i < n; i++) {
cin >> a[i];
}
cout << find_min_cost(a, k) << "\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgZmluZF9taW5fY29zdCh2ZWN0b3I8aW50PiYgYSwgaW50IGspIHsKICAgIGludCBuID0gYS5zaXplKCk7CiAgICB2ZWN0b3I8aW50PiBpbmRpY2VzOwogICAgdmVjdG9yPHBhaXI8aW50LCBpbnQ+PiBzb3J0ZWRfYTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgc29ydGVkX2EucHVzaF9iYWNrKHthW2ldLCBpfSk7CiAgICB9CiAgICBzb3J0KHNvcnRlZF9hLmJlZ2luKCksIHNvcnRlZF9hLmVuZCgpKTsKICAgIHNldDxpbnQ+IGN1dF9wb2ludHM7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IGsgLSAxOyBpKyspIHsKICAgICAgICBjdXRfcG9pbnRzLmluc2VydChzb3J0ZWRfYVtpXS5zZWNvbmQpOwogICAgfQogICAgdmVjdG9yPGludD4gYjsKICAgIHZlY3RvcjxpbnQ+IHN1YmFycmF5OwogICAgaW50IHBhcnQgPSAxOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBzdWJhcnJheS5wdXNoX2JhY2soYVtpXSk7CiAgICAgICAgaWYgKGN1dF9wb2ludHMuY291bnQoaSkgfHwgaSA9PSBuIC0gMSkgewogICAgICAgICAgICBpZiAocGFydCAlIDIgPT0gMCkgewogICAgICAgICAgICAgICAgYi5pbnNlcnQoYi5lbmQoKSwgc3ViYXJyYXkuYmVnaW4oKSwgc3ViYXJyYXkuZW5kKCkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHN1YmFycmF5LmNsZWFyKCk7CiAgICAgICAgICAgIHBhcnQrKzsKICAgICAgICB9CiAgICB9CiAgICAKICAgIC8vIFN0ZXAgMzogQXBwZW5kIDAgYXQgdGhlIGVuZCBvZiBiCiAgICBiLnB1c2hfYmFjaygwKTsKICAgIAogICAgLy8gU3RlcCA0OiBDb21wdXRlIHRoZSBjb3N0CiAgICBpbnQgY29zdCA9IDA7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IGIuc2l6ZSgpOyBpKyspIHsKICAgIAljb3V0IDw8IGJbaV0gPDwgJyAnOwogICAgICAgIGlmIChiW2ldICE9IGkpIHsKICAgICAgICAgICAgY29zdCA9IGk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBjb3N0Owp9CgppbnQgbWFpbigpIHsKCWludCB0OwoJY2luID4+IHQ7Cgl3aGlsZSh0LS0pewoJICAgIGludCBuLCBrOwoJICAgIGNpbiA+PiBuID4+IGs7CgkgICAgdmVjdG9yPGludD4gYShuKTsKCSAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewoJICAgICAgICBjaW4gPj4gYVtpXTsKCSAgICB9CgkgICAgY291dCA8PCBmaW5kX21pbl9jb3N0KGEsIGspIDw8ICJcbiI7Cgl9CiAgICByZXR1cm4gMDsKfQo=