#include<bits/stdc++.h>
#define MAX 1000000
using namespace std;
int t, n, k, x, a[MAX];
int binarySearch(int left, int right, int x){
if(a[right] <= x){
return right;
}
if(a[left] > x){
return left;
}
int mid = (left + right) / 2;
if(a[mid] <= x && a[mid + 1] > x){
return mid;
}
if(a[mid] < x){
return binarySearch(mid + 1, right, x);
}
return binarySearch(left, mid - 1, x);
}
void solve(){
int left = binarySearch(0, n - 1, x);
int right = left + 1;
int count = 0;
if(a[left] == x){
left--;
}
while(left >= 0 && right < n && count < k){
if(x - a[left] <= a[right] - x){
cout << a[left]<<" ";
left--;
}
else{
cout << a[right]<<" ";
right++;
}
count++;
}
while(count < k && left >= 0){
cout << a[left]<<" ";
left--;
count++;
}
while(count < k && right < n){
cout << a[right]<<" ";
right++;
count++;
}
}
int main(){
cin >> t;
while(t--){
cin >> n;
for(int i = 0; i < n; i++)
cin >> a[i];
cin >> k >> x;
solve();
cout << endl;
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBNQVggMTAwMDAwMAp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IHQsIG4sIGssIHgsIGFbTUFYXTsKCmludCBiaW5hcnlTZWFyY2goaW50IGxlZnQsIGludCByaWdodCwgaW50IHgpewoJaWYoYVtyaWdodF0gPD0geCl7CgkJcmV0dXJuIHJpZ2h0OwoJfQoJaWYoYVtsZWZ0XSA+IHgpewoJCXJldHVybiBsZWZ0OwoJfQoJaW50IG1pZCA9IChsZWZ0ICsgcmlnaHQpIC8gMjsKCWlmKGFbbWlkXSA8PSB4ICYmIGFbbWlkICsgMV0gPiB4KXsKCQlyZXR1cm4gbWlkOwoJfQoJaWYoYVttaWRdIDwgeCl7CgkJcmV0dXJuIGJpbmFyeVNlYXJjaChtaWQgKyAxLCByaWdodCwgeCk7Cgl9CglyZXR1cm4gYmluYXJ5U2VhcmNoKGxlZnQsIG1pZCAtIDEsIHgpOwp9Cgp2b2lkIHNvbHZlKCl7CglpbnQgbGVmdCA9IGJpbmFyeVNlYXJjaCgwLCBuIC0gMSwgeCk7CglpbnQgcmlnaHQgPSBsZWZ0ICsgMTsKCWludCBjb3VudCA9IDA7CglpZihhW2xlZnRdID09IHgpewoJCWxlZnQtLTsKCX0KCXdoaWxlKGxlZnQgPj0gMCAmJiByaWdodCA8IG4gJiYgY291bnQgPCBrKXsKCQlpZih4IC0gYVtsZWZ0XSA8PSBhW3JpZ2h0XSAtIHgpewoJCQljb3V0IDw8IGFbbGVmdF08PCIgIjsKCQkJbGVmdC0tOwoJCX0KCQllbHNlewoJCQljb3V0IDw8IGFbcmlnaHRdPDwiICI7CgkJCXJpZ2h0Kys7CgkJfQoJCWNvdW50Kys7Cgl9Cgl3aGlsZShjb3VudCA8IGsgJiYgbGVmdCA+PSAwKXsKCQljb3V0IDw8IGFbbGVmdF08PCIgIjsKCQlsZWZ0LS07CgkJY291bnQrKzsKCX0KCXdoaWxlKGNvdW50IDwgayAmJiByaWdodCA8IG4pewoJCWNvdXQgPDwgYVtyaWdodF08PCIgIjsKCQlyaWdodCsrOwoJCWNvdW50Kys7Cgl9Cn0KCmludCBtYWluKCl7CgljaW4gPj4gdDsKCXdoaWxlKHQtLSl7CgkJY2luID4+IG47CgkJZm9yKGludCBpID0gMDsgaSA8IG47IGkrKykKCQkJY2luID4+IGFbaV07CgkJY2luID4+IGsgPj4geDsKCQlzb2x2ZSgpOwoJCWNvdXQgPDwgZW5kbDsKCX0KCXJldHVybiAwOwp9