#include <stdio.h>
#include<stdlib.h>
#include<string.h>

typedef int BTreeData;
typedef struct BTreeNode
{
    BTreeData data;
    struct BTreeNode* left;
    struct BTreeNode* right;
}BTNode;

BTNode* BuyBTNode(BTreeData x)
{
    BTNode* node = (BTNode*)malloc(sizeof(BTNode));
    if(node == NULL)
    {
        perror("malloc fail");
        return NULL;
    }
    node->data = x;
    node->left = node->right = NULL;
    return node;
}

BTNode* CreateBinaryTree(char* arr,int* pi)
{
    if(arr[*pi] == '#')
    {
        (*pi)++;
        return NULL;
    }
    BTNode* root = BuyBTNode(arr[*pi]);
    (*pi)++;

    root->left = CreateBinaryTree(arr,pi);

    root->right = CreateBinaryTree(arr,pi);

    return root;
}

void InOrder(BTNode* root)
{
    if(root == NULL)
    {
        return;
    }
    InOrder(root->left);
    printf("%c ",root->data);
    InOrder(root->right);
}

int main()
{
    char arr[100];
    scanf("%s",arr);
    int i = 0;
    BTNode* root = CreateBinaryTree(arr,&i);
    InOrder(root);
    return 0;
}