#include <bits/stdc++.h>
using namespace std;
//树节点的定义
typedef struct TreeNode {
char data;
TreeNode* left;
TreeNode* right;
}* Tree;
//前序遍历的栈
typedef struct preOrder {
TreeNode* pos;
bool leftVisited;
bool rightVisited;
};
stack<preOrder> preOrderStack;
char str[110] = {0};
int i = 0;
//前序遍历建树
void CreatTree(Tree& t) {
char data = str[i++];
if (data != '#') {
// 申请一个新节点。
TreeNode* newNode = (TreeNode*) malloc(sizeof(TreeNode));
t = newNode;
t->right = NULL;
t->left = NULL;
t->data = data;
//递归插入左子树
CreatTree(t->left);
//递归插入右子树
CreatTree(t->right);
} else {
return;
}
}
void PostVisit(Tree& t) {
if (t == NULL) {
return;
} else {
PostVisit(t->left);
printf("%c ", t->data);
PostVisit(t->right);
}
}
int main() {
Tree t = NULL;
scanf("%s", &str);
CreatTree(t);
PostVisit(t);
}