#include <iostream>
#include <cstdio>

using namespace std;

typedef char ElementType;

struct TreeNode {
    ElementType data;
    TreeNode* leftChild;
    TreeNode* rightChild;

    TreeNode(char c) {
        this->data = c;
        this->leftChild = nullptr;
        this->rightChild = nullptr;
    }
};

void inOrder(TreeNode* root) {
    if (root == nullptr) {
        return;
    }
    /*
     * 左子树、根、右子树
     */
    inOrder(root->leftChild);
    cout << root->data << " ";
    inOrder(root->rightChild);
}

/**
 * 全局变量,用于记录谦虚遍历序列的索引
 */
int pos = 0;

TreeNode* build(string preOrder) {
    char cur = preOrder[pos];
    pos++;
    if (cur == '#') {
        return nullptr;
    }
    TreeNode* root = new TreeNode(cur);
    root->leftChild = build(preOrder);
    root->rightChild = build(preOrder);
    return root;
}

/**
 * 二叉树遍历--华中科技大学
 * @return
 */
int main() {
    string preOrder;
    while (cin >> preOrder) {
        TreeNode* root = build(preOrder);
        inOrder(root);
        cout << endl;
    }

    return 0;
}