import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = Integer.parseInt(sc.nextLine());
MyLinked linked = new MyLinked();
for(int i=0;i<n;i++){
String[] tempData = sc.nextLine().split(" ");
switch(tempData[0]){
case "insert":
linked.insert(Integer.parseInt(tempData[1]),Integer.parseInt(tempData[2]));
break;
case "delete":
linked.delete(Integer.parseInt(tempData[1]));
break;
}
}
linked.output();
sc.close();
}
}
class MyLinked{
private Node head;//头节点
private int length;//链表的长度
//创建一个单链表
public MyLinked(){
this.length = 0;
head = new Node(null);
}
//向链表中添加数据
public void insert(int value,int data){
Node p = this.head;//前指针
Node q = this.head.getNext();//后指针
while(q!=null && q.getData()!=value){//加上q!=null,防止找到最后节点不结束而出现空指针错误(放前面)
p = q;
q = q.getNext();
}
if(q==null){//链表中没有所查找的数据,新数据插入末尾
p.setNext(new Node(data,null));
this.length++;
}
else{//找到目标数据
p.setNext(new Node(data,q));
this.length++;
}
}
//删除链表中的数据
public void delete(int data){
if(isEmpty()){
return;
}
Node p = this.head;
Node q = this.head.getNext();
while(q!=null && q.getData()!=data){
p = q;
q = q.getNext();
}
if(q==null){//所要删除的数据不存在
return;
}
else{//找到,删除
p.setNext(q.getNext());
this.length--;
}
}
//判空
public boolean isEmpty(){
if(this.length==0){
return true;
}
return false;
}
//链表中的数据输出
public void output(){
if(isEmpty()){
System.out.println("NULL");
return;
}
Node temp = this.head.getNext();
for(int i=0;i<this.length;i++) {
if (i==this.length-1) {
System.out.print(temp.getData());
break;
}
else {
System.out.print(temp.getData()+" ");
temp = temp.getNext();
}
}
}
}
class Node{
private int data;//数据域
private Node next;//指针域
//创建一个头节点
public Node(Node next){
this.next = next;
}
//创建一个实际节点
public Node(int data,Node next){
this.data = data;
this.next = next;
}
public int getData(){
return this.data;
}
public void setData(int data){
this.data = data;
}
public Node getNext(){
return this.next;
}
public void setNext(Node next){
this.next = next;
}
}