#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct node{
  int key;
  struct node *next;
  struct node *prev;
};

typedef struct node * NodePointer;
NodePointer nil;

void init(){
  nil=(struct node*)malloc(sizeof(struct node));
  nil->next=nil;
  nil->prev=nil;
}

void printList(){
  struct node *p;
  for(p=nil->next;p!=nil;p=p->next){
    if(p!=nil->prev){
      printf("%d ", p->key);
    }else if(p == nil->prev){
      printf("%d\n", p->key);
    }
  }
}

void deleteNode(NodePointer q){
  //First
  if(q->prev==nil){
    nil->next=q-> next;
    q->next->prev=nil;
    free(q);
  }
  //Last
  else if(q->next==nil){
    nil->prev=q->prev;
    q->prev->next=nil;
    free(q);
  }
  else{
    q->prev->next=q->next;
    q->next->prev=q->prev;
    free(q);
  }
}

void deleteFirst(){
  NodePointer q=nil->next;
  if(q==nil) return;
  deleteNode(q);
}

void deleteLast(){
  NodePointer q=nil->prev;
  if(q==nil) return;
  deleteNode(q);
}

void del(int key){
  struct node *p;

  if(nil->key==key){
    deleteFirst();
    return;
  }
  for(p=nil->next;p!=nil;p=p->next){
    if(p->key==key){
      deleteNode(p);
      return;
    }
  }

}

void insert(int key){
  NodePointer x;
  x = (struct node*)malloc(sizeof(struct node));
  x->key=key;

  if(nil->next==nil){
    nil-> prev=x;
  }
  x->next=nil->next;
  x->prev=nil;
  nil->next->prev=x;
  nil->next=x;
}

int main(void){
  int n,i,key;
  char com[200];
  scanf("%d", &n);

  init();

  for(i=0;i<n;i++){
    scanf("%s", com);
    if(com[0]=='i'){
      scanf("%d", &key);
      insert(key);
    }
    else if(com[0]=='d'){
      if(strlen(com) > 6){
        if(com[6]=='F') deleteFirst();
        else if(com[6]=='L') deleteLast();
      }
      else{
        scanf("%d", &key);
        del(key);
      }
    }
  }
}