#include<bits/stdc++.h>
using namespace std;
struct Node {
int data;
Node *left, *right;
Node(int x){
data = x;
left = NULL;
right = NULL;
}
};
Node * insert(Node *root, int val){
if(root == NULL){
return new Node(val);
}
if(root->data < val){
root->right = insert(root->right, val);
}
else if(root->data > val){
root->left = insert(root->left, val);
}
return root;
}
void post(Node *root){
if(root == NULL) return;
post(root->left);
post(root->right);
cout << root->data << " ";
}
int main() {
int test;
cin >> test;
while(test--){
int n;
cin >> n;
Node *root = NULL;
int x;
for(int i = 0; i < n; i++){
cin >> x;
root = insert(root, x);
}
post(root);
cout << endl;
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnN0cnVjdCBOb2RlIHsKCWludCBkYXRhOwoJTm9kZSAqbGVmdCwgKnJpZ2h0OwoJTm9kZShpbnQgeCl7CgkJZGF0YSA9IHg7CgkJbGVmdCA9IE5VTEw7CgkJcmlnaHQgPSBOVUxMOwoJfQp9OwoKCk5vZGUgKiBpbnNlcnQoTm9kZSAqcm9vdCwgaW50IHZhbCl7CglpZihyb290ID09IE5VTEwpewoJCXJldHVybiBuZXcgTm9kZSh2YWwpOwoJfQoJaWYocm9vdC0+ZGF0YSA8IHZhbCl7CgkJcm9vdC0+cmlnaHQgPSBpbnNlcnQocm9vdC0+cmlnaHQsIHZhbCk7Cgl9CgllbHNlIGlmKHJvb3QtPmRhdGEgPiB2YWwpewoJCXJvb3QtPmxlZnQgPSBpbnNlcnQocm9vdC0+bGVmdCwgdmFsKTsJCgl9CglyZXR1cm4gcm9vdDsKfQoKdm9pZCBwb3N0KE5vZGUgKnJvb3QpewoJaWYocm9vdCA9PSBOVUxMKSByZXR1cm47Cglwb3N0KHJvb3QtPmxlZnQpOwoJcG9zdChyb290LT5yaWdodCk7Cgljb3V0IDw8IHJvb3QtPmRhdGEgPDwgIiAiOwoJCn0KCgppbnQgbWFpbigpIHsKCWludCB0ZXN0OwoJY2luID4+IHRlc3Q7Cgl3aGlsZSh0ZXN0LS0pewoJCWludCBuOwoJCWNpbiA+PiBuOwoJCU5vZGUgKnJvb3QgPSBOVUxMOwoJCWludCB4OwoJCWZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspewoJCQljaW4gPj4geDsKCQkJcm9vdCA9IGluc2VydChyb290LCB4KTsKCQl9CgkJcG9zdChyb290KTsKCQljb3V0IDw8IGVuZGw7CgkJCgl9CglyZXR1cm4gMDsKfQ==