#include <iostream>
#include <cstdio>
#include <string>
using namespace std;
struct TreeNode {
char data;
TreeNode* leftChild;
TreeNode* rightChild;
TreeNode(char c) : data(c), leftChild(NULL), rightChild(NULL) {}
};
TreeNode* Build(int& position, string str) {
char c = str[position++];
if ( c == '#') {
return NULL;
}
TreeNode* root = new TreeNode(c);
root->leftChild = Build(position, str);
root->rightChild = Build(position, str);
return root;
}
void InOrder(TreeNode* root) {
if (root == NULL) {
return;
}
InOrder(root->leftChild);
printf("%c ", root->data);
InOrder(root->rightChild);
return;
}
int main() {
string str;
while (cin >> str) {
int position = 0;
TreeNode* root = Build(position, str);
InOrder(root);
printf("\n");
}
return 0;
}