#include <iostream>
using namespace std;
class node{//---------节点(一个数字,和一个指向下一节点的指针,指向空表示其为尾节点
public:
  int n;
  node* next;
  node(int x){
    n = x;
    next = nullptr;
  }
};
class linked_list{
public:
  node* head = nullptr;
  void insert(int x, int y){
    node* temp = new node(y);
    if (head == nullptr)//------如果链表中没有元素
      head = temp;
    else{
      node* dd = head;
      node* tt = head;//-------tt去找x的位置,dd指向它的上一个位置
      while (tt->next != nullptr && tt->n != x){
        dd = tt;
        tt = tt->next;
      }
      if(tt == head && tt->n == x){//--------情况1,x就是第一个元素
        head = temp;
        temp->next = tt;
      }
      else if (tt->n == x){//--------情况2,tt找到x了且x不是的一个元素
        dd->next = temp;
        temp->next = tt;
      }
      else if (tt->next == nullptr){//-------情况3,没找到x
        tt->next = temp;
      }
    }
  }
  void del(int x){
    node* tt = head;
    if (head == nullptr);//--------为空则,不操作
    else if(tt->n == x){//------情况1,第一个就是x
      head = tt->next;
      delete tt;
    }
    else{
      while(tt->next != nullptr && tt->next->n != x){//-------找x的上一个元素
        tt = tt->next;
      }
      if (tt->next->n == x){//------找到了
        node* temp = tt;
        node* temp1 = tt->next;
        tt = tt->next->next;
        temp->next = tt;
        delete temp1;
      }//---------没找到不操作
    }
  }
  void print(){
    if (head == nullptr) cout << "NULL" << endl;
    else{
      while(head->next != nullptr){
        cout << head->n << " ";
        head = head->next;
      }
      cout << head->n;
    }
  }
};
int main() {
  int n, x, y;
  string s;
  cin >> n;
  linked_list li;
  for (int i = 0; i < n; i++){
    cin >> s;
    if (s == "insert"){
      cin >> x >> y;
      li.insert(x, y);
    }
    else{
      cin >> x;
      li.del(x);
    }
  }
  li.print();
}
// 64 位输出请用 printf("%lld")