#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct linklist *list;
struct linklist{
 int key;
 list next;
 list back;
};
list head;
list tail;
void init(void){
 head = (list)malloc(sizeof(*head));
 tail = head;
 tail->next = NULL;
}
void insert(int k){
 list x;
 x = (list)malloc(sizeof(*x));
 x->next = head;
 x->key = k;
 x->back = NULL;
 head->back = x;
 head = x;
// printf("insert\n");
 return;
}
void delete(int k){
 list x;
 list ins;
 x = head;
// printf("delete\n");
 if(head->key==k){
  head = head->next;
  head->back = NULL;
  free(x);
  return;
 }
 while(x->next!=tail){
  if((x->next)->key==k){
   ins = x->next;
   x->next = ins->next;
   ins->next->back = x;
   free(ins);
   return;
  }else{
   x = x->next;
  }
 }
 return;
}
void deleteFirst(void){
 list ins;
 ins = head;
 head = head->next;
 head->back = NULL;
 free(ins);
 return;
}
void deleteLast(void){
 list x;
 list ins;
 x = tail;
 tail = tail->back;
 tail->next = NULL;
 free(x);
 return;
}
int main(int argc, char argv[]){
 int n;
 char command[20] = "\0";
 int d;
 list x;
 init();
 scanf("%d",&n);
 int i,j;
 for(i=0;i<n;i++){
  scanf("%s %d",command,&d);
  if(!strcmp(command,"insert"))insert(d);
  else if(!strcmp(command,"delete"))delete(d);
  else if(!strcmp(command,"deleteFirst"))deleteFirst();
  else if(!strcmp(command,"deleteLast"))deleteLast();
  else printf("The command does not exist.\n");
 }
 x = head;
 if(x!=tail)printf("%d",x->key);
 x = x->next;
 while(x != tail){
  printf(" ");
  printf("%d",x->key);
  x = x->next;
 }
 printf("\n");
 return 0;
}