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

struct Node{
    int value;
    struct Node *next;
    struct Node *prev;
};

typedef struct Node * ndpt;

ndpt nil;

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

void insert(int value){
    ndpt x;
    x = malloc(sizeof(struct Node));
    x->value = value;
    x->next = nil->next;
    nil->next->prev = x;
    nil->next = x;
    x->prev = nil;
}

ndpt listSerach(int value){
    ndpt cur = nil->next;
    while( cur != nil && cur->value != value){
        cur = cur->next;
    }
    return cur;
}

void deleteNode(ndpt t){
    if(t == nil) return;
    t->prev->next = t->next;
    t->next->prev = t->prev;
    free(t);
}

void deleteFirst(){
    deleteNode(nil->next);
}

void deleteLast(){
    deleteNode(nil->prev);
}

void deleteValue(int value){
    deleteNode(listSerach(value));
}

void printList(){
  ndpt cur = nil->next;
  int isf = 1;
  while(1){
    if ( cur == nil ) break;
    if ( isf == 0)  printf(" ");
    printf("%d", cur->value);
    cur = cur->next;
    isf = 0;
  }
  printf("\n");
}

int main(){
  int value, n, i;
  int size = 0;
  char com[20];
  int np = 0, nd = 0;
  scanf("%d", &n);
  init();
  for ( i = 0; i < n; i++ ){
    scanf("%s%d", com, &value);
    if ( com[0] == 'i' ) {insert(value); np++; size++;}
    else if ( com[0] == 'd' ) {
      if (strlen(com) > 6){
	if ( com[6] == 'F' ) deleteFirst();
	else if ( com[6] == 'L' ) deleteLast();
      } else {
	deleteValue(value); nd++; 
      }
      size--;
    }
  }

  printList();
  return 0;
}

