import java.util.Scanner;
import java.util.Arrays;
import java.lang.String;
class ListNode{
int val;
ListNode next;
ListNode(){}
ListNode(int val){
this.val = val;
}
ListNode(int val, ListNode next){
this.next = next;
}
public static ListNode arrayToListNode(int[] array){
int length = array.length;
ListNode root = new ListNode(array[0]);
ListNode pre = root;
for(int i = 1; i < array.length; i++){
pre.next = new ListNode(array[i]);
pre = pre.next;
}
return root;
}
public static void print(ListNode node){
if(node == null) System.out.print(node);
while(node != null){
System.out.print(node.val);
node = node.next;
}
System.out.println();
}
public static void printOrSpace(ListNode node){
if(node == null) System.out.print(node);
while(node != null){
System.out.print(node.val);
node = node.next;
if(node != null){
System.out.print(" ");
}
}
System.out.println();
}
}
public class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext()){
String value = scanner.nextLine();
value = value.trim();
ListNode node = getNode(value);
ListNode.printOrSpace(node);
}
}
public static ListNode getNode(String valueKey){
ListNode node = new ListNode(-1);
//计数器
int count = 0;
//待插入的节点值
int value = -1;
//插入位置(元素尾部)
int num = 0;
StringBuilder builder = new StringBuilder();
int headCount = 0;
for(int i = 0; i < valueKey.length(); i++){
if(valueKey.charAt(i) != ' '){
int singleNumber = valueKey.charAt(i) - '0';
builder.append(singleNumber);
if(i == valueKey.length() - 1){
num = Integer.valueOf(builder.toString());
// System.out.println("delete:"+num);
//删除节点
node = removeNode(node,num);
}
} else {
if(builder != null){
num = Integer.valueOf(builder.toString());
builder.setLength(0);
if(headCount == 1){
//创建头结点
node = new ListNode(num);
}
if(headCount >= 2) {
count++;
if(count == 2){
node = insertNode(node,num,value);
count = 0;
value = -1;
} else {
value = num;
}
}
headCount++;
}
}
}
return node;
}
public static ListNode insertNode(ListNode node,int insertNodeValue, int newNodeValue){
ListNode cur = node;
ListNode newNode = new ListNode(newNodeValue);
while(cur != null){
if(cur.val == insertNodeValue){
ListNode curNext = cur.next;
cur.next = newNode;
newNode.next = curNext;
}
cur = cur.next;
}
return node;
}
///链表删除某个节点
public static ListNode removeNode(ListNode node,int deleteVal){
//临时头结点
ListNode temp = new ListNode(-1);
temp.next = node;
//当前节点的上一个节点
ListNode pre = temp;
//当前节点
ListNode cur = node;
while(cur != null){
if(cur.val == deleteVal){
pre.next = cur.next;
} else {
pre = cur;
}
cur = cur.next;
}
return temp.next;
}
}