import java.util.*;
public class Main {
public static void main(String args[]) {
BinaryTree t = new BinaryTree();
}
}
class BinaryTree{
private class Node{
int data;
Node left;
Node right;
}
private Node root;
public BinaryTree(){
Scanner scan = new Scanner(System.in);
this.root = construct(scan,null,false);
max_level max = new max_level();
rightView(this.root,1,max);
}
public Node construct(Scanner scan, Node parent, boolean isLc){
int nodeData = scan.nextInt();
if(nodeData == -1){
return null;
}
Node node = new Node();
node.data = nodeData;
node.left = construct(scan, node,true);
node.right = construct(scan,node,false);
return node;
}
public void rightView(Node node, int level, max_level maxl ){
if(node == null){
return;
}
if(maxl.max<level){
System.out.print(node.data+ " ");
maxl.max = level;
}
rightView(node.right,level+1,maxl);
rightView(node.left,level+1,maxl);
}
}
class max_level{
int max=0;
}