#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==