import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class Main {
static class TreeNode{
char val;
TreeNode left;
TreeNode right;
public TreeNode(char val){
this.val = val;
}
}
public static TreeNode buildTree(Queue<Character> input){
if (input == null){
return null;
}
char nodeVal = input.remove();
if (nodeVal == '#'){
return null;
}
TreeNode node = new TreeNode(nodeVal);
node.left = buildTree(input);
node.right = buildTree(input);
return node;
}
public static void look(TreeNode root){
if (root == null){
return;
}
look(root.left);
System.out.printf("%c ", root.val);;
look(root.right);
}
public static void main(String[] args) {
Scanner sca = new Scanner(System.in);
while (sca.hasNextLine()){
String str = null;
Queue<Character> input = new LinkedList<>();
if (sca.hasNext()){
str = sca.nextLine();
}
if (str != null){
for (char ch : str.toCharArray()){
input.add(ch);
}
TreeNode root = buildTree(input);
look(root);
}
}
}
}