#include<iostream>
using namespace std;
int ans = 0;
struct T
{
int l = -1, r = -1;
char v = '*';
}node[1000010];
void qxbl(int root)
{
printf("%c", node[root].v);
if (node[root].l != -1)
qxbl(node[root].l);
if (node[root].r != -1)
qxbl(node[root].r);
}
int main()
{
int n;
cin >> n;
int ff = 1, aa = 0;
for (int i = 1; i <= n; i++)
{
char root, l, r;
cin >> root >> l >> r;
if (ff)
{
aa = root - 'a';
ff = 0;
}
node[root - 'a'].v = root;
if (l != '*')
{
node[l - 'a'].v = l;
node[root - 'a'].l = l - 'a';
}
if (r != '*')
{
node[r - 'a'].v = r;
node[root - 'a'].r = r - 'a';
}
}
qxbl(aa);
}