import java.util.*;
public class Main {
private class Node{
Node left;
Node right;
int data;
}
private Node root;
public void constract(int ar[]){
this.root=constract(ar,0,ar.length);
}
private Node constract(int ar[],int low,int high) {
if(low>=high)
{
return null;
}
int mid=(low + high)/2;
Node nn=new Node();
nn.data=ar[mid];
nn.left=constract(ar,low,mid);
nn.right=constract(ar,mid+1,high);
return nn;
}
public void preOrder() {
preOrder(this.root,1);
}
private void preOrder(Node node,int temp) {
if(node==null)
return;
if(temp!=1){
System.out.print(" ");
}
temp++;
System.out.print(node.data);
preOrder(node.left,temp);
preOrder(node.right,temp);
}
static Scanner scn=new Scanner(System.in);
public static void main(String[] args) {
Main BST=new Main();
int t=scn.nextInt();
while(t!=0) {
int n=scn.nextInt();
int ar[]=new int[n];
for(int i=0;i<n;i++) {
ar[i]=scn.nextInt();
}
BST.constract(ar);
BST.preOrder();
t--;
}
}
}