#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct _Node{
  int key;
  struct _Node *next, *prev;
}Node;
Node *nil;
void init(void);
void insert(int);
Node* listSearch(int);
void deleteNode(Node*);
void deleteFirst(void);
void deleteLast(void);
void deletekey(int);
void Print(void);

void init(void){
    nil=(Node*)malloc(sizeof(Node));
    nil->next=nil;
    nil->prev=nil;
    return;
}
void insert(int key){
    Node *x=(Node*)malloc(sizeof(Node));
    x->key=key;
    x->next=nil->next;
    nil->next->prev=x;
    nil->next=x;
    x->prev=nil;
    return;
}
void deleteNode(Node *t){
    if(t==nil){return;}
    t->prev->next=t->next;
    t->next->prev=t->prev;
    free(t);
    return;
}
Node* listSearch(int key){
    Node *x=nil->next;
    while(x != nil && x->key != key){
        x=x->next;
    }
    return x;
}
void deleteFirst(void){
    deleteNode(nil->next);
    return;
}
void deleteLast(void){
    deleteNode(nil->prev);
    return;
}
void deletekey(int key){
    deleteNode(listSearch(key));
    return;
}
void Print(void){
    int a=0;
    Node *x=nil->next;
    while(x!=nil){
        if(a++>0){
            printf(" ");
        }
        printf("%d",x->key);
        x=x->next;
    }
    printf("\n");
    return;
}
int main(void){
    int i,n,num;
    char str[10];
    scanf("%d",&n);
    init();
    for(i=0;i<n;i++){
        scanf("%s %d",str,&num);
        if(str[0]=='i'){
            insert(num);
        }else if(str[0]=='d'){
            if(strlen(str)>6){
                if(str[6]=='F'){
                    deleteFirst();
                }
                else if(str[6]=='L'){
                    deleteLast();
                }
            }
        else{
            deletekey(num);
        }
        }
    }
    Print();
    return 0;
}
