#include<cstdio>
#include<iostream>
using namespace std;
string tree[30];
int n,i;
struct Node {
char val;
Node* left;
Node* right;
Node(char x) :val(x), left(NULL), right(NULL) {};
};
Node* solve(Node* root,string tree[]) {
if (root == NULL) return root;
if (root->val == tree[i][0]) {
if (tree[i][1] != '*') {
Node* left = new Node(tree[i][1]);
root->left = left;
}
else {
root->left = NULL;
}
if (tree[i][2] != '*') {
Node* right = new Node(tree[i][2]);
root->right = right;
}
else {
root->right = NULL;
}
i++;
return root;
}
solve(root->left, tree);
solve(root->right, tree);
return root;
}
void printTree(Node* root) {
if (root == NULL) {
return;
}
cout << root->val ;
printTree(root->left);
printTree(root->right);
}
int main() {
cin >> n;
for (int i = 0; i < n; i++) {
string str;
cin >> str;
tree[i] = str;
}
Node* root = new Node(tree[0][0]);
Node* left = new Node(tree[0][1]);
Node* right = new Node(tree[0][2]);
root->left = left;
root->right = right;
i = 1;
printTree(solve(root, tree));
return 0;
}