import java.util.*;
public class Main {
static Scanner obj=new Scanner(System.in);
private class Node
{
Node left;
Node right;
int data;
}
private Node root=null;
Main(int arr[])
{
this.root=construct(arr,0,arr.length-1);
}
public Node construct(int arr[],int lo,int hi)
{
if(lo>hi)
{
return null;
}
int mid=(lo+hi)/2;
Node nn=new Node();
nn.data=arr[mid];
nn.left=construct(arr,lo,mid-1);
nn.right=construct(arr,mid+1,hi);
return nn;
}
public void preorder()
{
this.preorder(this.root);
}
private void preorder(Node node)
{
if(node==null)
{
return;
}
System.out.print(node.data+" ");
preorder(node.left);
preorder(node.right);
}
public void display(int arr[],int r1,int r2)
{
Arrays.sort(arr);
System.out.println();
for(int i=0;i<arr.length;i++)
{
if(arr[i]>=r1&& arr[i]<=r2)
{
System.out.print(arr[i]+" ");
}
}
}
public static void main(String args[])
{
int t=obj.nextInt();
while(t-->0)
{
int n=obj.nextInt();
int arr[]=new int[n];
for(int i=0;i<n;i++)
{
arr[i]=obj.nextInt();
}
Arrays.sort(arr);
int r1=obj.nextInt();
int r2=obj.nextInt();
Main tree=new Main(arr);
tree.preorder();
tree.display(arr,r1,r2);
}
}
}