const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
class TreeNode {
constructor(val, left = null, right = null) {
this.val = val;
this.left = left;
this.right = right;
}
}
class Tree {
constructor(val) {
this.root = new TreeNode(val);
this.size = 1;
}
buildTree(str) {
let stack = [this.root];
let node = this.root;
let isLeft = true;
for (let i = 1; i < str.length; i++) {
const char = str[i];
if (char === "{") {
stack.push(node);
isLeft = true;
} else if (char === "}") {
stack.pop();
} else if (char === ",") {
isLeft = false;
} else if (char !== " ") {
const newNode = new TreeNode(char);
if (isLeft) {
stack[stack.length - 1].left = newNode;
} else {
stack[stack.length - 1].right = newNode;
}
node = newNode;
this.size++;
}
}
}
inorderTraversal(node = this.root) {
let result = "";
const inorder = (node) => {
if (!node) return;
inorder(node.left);
result += node.val;
inorder(node.right);
};
inorder(node);
return result;
}
}
void (async function () {
const str = await readline();
const tree = new Tree(str[0]);
tree.buildTree(str);
console.log(tree.inorderTraversal());
})();