#include <iostream>
#include <queue>
using namespace std;
struct Node{
int data;
Node *left, *right;
Node(int x) {
data=x;
left=right=NULL;
}
};
void insert(Node* &root, int x) {
if (root==NULL){
root = new Node(x);
return;
}
if (root->data>x) insert(root->left, x);
if (root->data<x) insert(root->right, x);
}
void rightLevelOrder(Node* root) {
if (root==NULL) return;
queue<Node*> q;
q.push(root);
while (!q.empty()) {
int level_size = q.size();
while (level_size--) {
Node* curr = q.front(); q.pop();
cout<<curr->data<<" ";
if (curr->right) q.push(curr->right);
if (curr->left) q.push(curr->left);
}
}
cout << endl;
}
int main() {
int t; cin >> t;
while (t--) {
int n;
cin >> n;
int a[10005];
for (int i=0;i<n;i++) {
cin>>a[i];
}
Node* root=NULL;
for (int i=0;i<n;i++) {
insert(root, a[i]);
}
rightLevelOrder(root);
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8cXVldWU+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgTm9kZXsKICAgIGludCBkYXRhOwogICAgTm9kZSAqbGVmdCwgKnJpZ2h0OwogICAgTm9kZShpbnQgeCkgewogICAgICAgIGRhdGE9eDsKICAgICAgICBsZWZ0PXJpZ2h0PU5VTEw7CiAgICB9Cn07Cgp2b2lkIGluc2VydChOb2RlKiAmcm9vdCwgaW50IHgpIHsKICAgIGlmIChyb290PT1OVUxMKXsKICAgICAgICByb290ID0gbmV3IE5vZGUoeCk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKHJvb3QtPmRhdGE+eCkgaW5zZXJ0KHJvb3QtPmxlZnQsIHgpOwogICAgaWYgKHJvb3QtPmRhdGE8eCkgaW5zZXJ0KHJvb3QtPnJpZ2h0LCB4KTsKfQoKdm9pZCByaWdodExldmVsT3JkZXIoTm9kZSogcm9vdCkgewogICAgaWYgKHJvb3Q9PU5VTEwpIHJldHVybjsKCiAgICBxdWV1ZTxOb2RlKj4gcTsKICAgIHEucHVzaChyb290KTsKCiAgICB3aGlsZSAoIXEuZW1wdHkoKSkgewogICAgICAgIGludCBsZXZlbF9zaXplID0gcS5zaXplKCk7CiAgICAgICAgd2hpbGUgKGxldmVsX3NpemUtLSkgewogICAgICAgICAgICBOb2RlKiBjdXJyID0gcS5mcm9udCgpOyBxLnBvcCgpOwogICAgICAgICAgICBjb3V0PDxjdXJyLT5kYXRhPDwiICI7CiAgICAgICAgICAgIGlmIChjdXJyLT5yaWdodCkgcS5wdXNoKGN1cnItPnJpZ2h0KTsKICAgICAgICAgICAgaWYgKGN1cnItPmxlZnQpICBxLnB1c2goY3Vyci0+bGVmdCk7CiAgICAgICAgfQogICAgfQogICAgY291dCA8PCBlbmRsOwp9CgppbnQgbWFpbigpIHsKICAgIGludCB0OyBjaW4gPj4gdDsKICAgIHdoaWxlICh0LS0pIHsKICAgICAgICBpbnQgbjsKICAgICAgICBjaW4gPj4gbjsKICAgICAgICBpbnQgYVsxMDAwNV07CiAgICAgICAgZm9yIChpbnQgaT0wO2k8bjtpKyspIHsKICAgICAgICAgICAgY2luPj5hW2ldOwogICAgICAgIH0KICAgICAgICBOb2RlKiByb290PU5VTEw7CiAgICAgICAgZm9yIChpbnQgaT0wO2k8bjtpKyspIHsKICAgICAgICAgICAgaW5zZXJ0KHJvb3QsIGFbaV0pOwogICAgICAgIH0KCiAgICAgICAgcmlnaHRMZXZlbE9yZGVyKHJvb3QpOwogICAgfQoKICAgIHJldHVybiAwOwp9Cg==