import java.util.* ;
class Node {//节点
    int val ;
    Node next ;
    Node(int val) {
        this.val = val ;
    }
}
class MyList {//自定义链表
    Node root ;//辅助节点
    MyList() {
        root = new Node(-1) ;
    }
    
    public void insert(int x , int y) {//在y前面插入x
        Node xPre = findPre(x) ;
        Node yNode = new Node(y) ;
        yNode.next = xPre.next ;
        xPre.next = yNode ;
    }
    
    public void delete(int x) {//删除x
        Node xPre = findPre(x) ;
        if(xPre.next != null) {
            xPre.next = xPre.next.next ;
        }
    }
    
    public Node findPre(int x) {//找到x的前一个节点,如若x不存在,返回尾节点
        Node cur = root ;
        while(cur.next != null && cur.next.val != x) {
            cur = cur.next ;
        }       
        return cur ;
    }
    
    public String toString() {
        StringBuilder sb = new StringBuilder() ;
        if(root.next == null) {
            return "NULL" ;
        } else {
            Node cur = root.next ;//从辅助节点的下一个节点开始
            while(cur != null) {
                sb.append(cur.val + " ") ;
                cur = cur.next ;
            }
        }
        return sb.toString() ;
    }
}
public class Main {
    public static void main(String... args) {
        Scanner sca = new Scanner(System.in) ;
        sca.nextLine() ;
        MyList list = new MyList() ;
        while(sca.hasNextLine()) {
            String[] arr = sca.nextLine().split(" ") ;
            if(arr[0].equals("insert")) {
                list.insert(Integer.parseInt(arr[1]) , Integer.parseInt(arr[2])) ;
            } else {
                list.delete(Integer.parseInt(arr[1])) ;
            }
        }
        System.out.println(list) ;
    }
}