#include <bits/stdc++.h>
using namespace std;
using ll = long long;
struct node{
int data;
node* right;
node* left;
};
node* makeroot(node* root, int u)
{
// root = new node;
root->data = u;
root->right = NULL;
root->left = NULL;
return root;
}
void insert(node* root, int u, int v, char c)
{
if(root == NULL)
{
root = new node;
root = makeroot(root, u);
}
if(c == 'L')
{
root->left = new node;
root->left = makeroot(root, v);
}
else
{
root->right = new node;
root->right = makeroot(root, v);
}
}
void leverOrder(node* root)
{
cout << root->data << " ";
leverOrder(root->left);
leverOrder(root->right);
}
int main()
{
int t; cin >> t;
while(t--)
{
int n; cin >> n;
node* root = NULL;
for(int i = 1; i <= n; i++)
{
int x, y;
char c;
cin >> x >> y >> c;
insert(root, x, y, c);
}
leverOrder(root);
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGxsID0gbG9uZyBsb25nOwoKCnN0cnVjdCBub2RlewoJaW50IGRhdGE7Cglub2RlKiByaWdodDsKCW5vZGUqIGxlZnQ7Cn07Cgpub2RlKiBtYWtlcm9vdChub2RlKiByb290LCBpbnQgdSkKewovLwlyb290ID0gbmV3IG5vZGU7Cglyb290LT5kYXRhID0gdTsKCXJvb3QtPnJpZ2h0ID0gTlVMTDsKCXJvb3QtPmxlZnQgPSBOVUxMOwoJcmV0dXJuIHJvb3Q7Cn0KCnZvaWQgaW5zZXJ0KG5vZGUqIHJvb3QsIGludCB1LCBpbnQgdiwgY2hhciBjKQp7CglpZihyb290ID09IE5VTEwpCgl7CgkJcm9vdCA9IG5ldyBub2RlOwoJCXJvb3QgPSBtYWtlcm9vdChyb290LCB1KTsKCX0KCWlmKGMgPT0gJ0wnKQoJewoJCXJvb3QtPmxlZnQgPSBuZXcgbm9kZTsKCQlyb290LT5sZWZ0ID0gbWFrZXJvb3Qocm9vdCwgdik7Cgl9CgllbHNlCgl7CgkJcm9vdC0+cmlnaHQgPSBuZXcgbm9kZTsKCQlyb290LT5yaWdodCA9IG1ha2Vyb290KHJvb3QsIHYpOwkKCX0KfQoKdm9pZCBsZXZlck9yZGVyKG5vZGUqIHJvb3QpCnsKCWNvdXQgPDwgcm9vdC0+ZGF0YSA8PCAiICI7CglsZXZlck9yZGVyKHJvb3QtPmxlZnQpOwoJbGV2ZXJPcmRlcihyb290LT5yaWdodCk7Cn0KCmludCBtYWluKCkKewoJaW50IHQ7IGNpbiA+PiB0OwoJd2hpbGUodC0tKQoJewoJCWludCBuOyBjaW4gPj4gbjsKCQlub2RlKiByb290ID0gTlVMTDsKCQlmb3IoaW50IGkgPSAxOyBpIDw9IG47IGkrKykKCQl7CgkJCWludCB4LCB5OwoJCQljaGFyIGM7CgkJCWNpbiA+PiB4ID4+IHkgPj4gYzsKCQkJaW5zZXJ0KHJvb3QsIHgsIHksIGMpOwoJCX0KCQlsZXZlck9yZGVyKHJvb3QpOwoJfQp9Cg==