#include<cstdio>
#include<string>
using namespace std;
struct TreeNode{
	char data;
	TreeNode * leftChild;
	TreeNode * rightChild;
	};
TreeNode* RecursiveBulidTree(int &i, string str){
	//返回的是本棵子树根节点的地址
	char c = str[i];
	++i;
	if(c == '#'){
		return NULL;
		}
	else{
		TreeNode *pNewNode = new TreeNode;
		pNewNode->data = c;
		pNewNode->leftChild = RecursiveBulidTree(i,str);
		pNewNode->rightChild = RecursiveBulidTree(i,str);
		return pNewNode;
		}
	}
void InOrder(TreeNode *root){
	if(root == NULL){
		return;
		}
	else{
		InOrder(root->leftChild);
		printf("%c ", root->data);
		InOrder(root->rightChild);
		}
	}
int main(){
		//string str = "ab##cd#gf###e##";
		char str[1000];
		while (scanf("%s",str) != EOF){
		int i = 0;
		TreeNode * root = RecursiveBulidTree(i,str);
		InOrder(root);
		printf("\n");
		}

	}