#include<stdio.h>
#include<string.h>
#include <stdlib.h>
#include <math.h>
#define MAX 77777777
#define N 101


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

void Ins(int);
void Delkey(int);
NodePointer S(int);
void Del(NodePointer);

NodePointer nil;

int main()
{
    int i, n, data;
    char c[12];
    NodePointer x;
    
    
    nil = (NodePointer)malloc(sizeof(struct node));
    nil->next = nil;
    nil->prev = nil;
    nil->key = -1;
    
    scanf("%d",&n);
    
    for(i = 0; i < n; i++) {
        scanf("%s",c);
        
        if(strcmp(c,"insert") == 0) {
            scanf("%d",&data);
            Ins(data);
        }
        else if(strcmp(c,"delete") == 0) {
            scanf("%d",&data);
            Delkey(data);
        }
        else if(strcmp(c,"deleteFirst") == 0){
            Del(nil->next);
        }
        else {
            Del(nil->prev);
        }
    }
    
    x = nil->next;
    printf("%d",x->key);
    x = x->next;
    while(x != nil) {
        printf(" %d",x->key);
        x = x->next;
    }
    printf("\n");
    
    
    x = nil->next->next;
    while(x != nil) {
        free(x->prev);
        x = x->next;
    }
    free(nil);
    
    return 0;
}

void Ins(int data)
{
    NodePointer x;
    
    x = (NodePointer)malloc(sizeof(struct node));
    
    x->key = data;
    
    x->next = nil->next;
    nil->next->prev = x;
    nil->next = x;
    x->prev = nil;
}

void Delkey(int data)
{
    NodePointer x;
    
    if((x = S(data)) == nil) return;
    
    Del(x);
}

NodePointer S(int data)
{
    NodePointer x;
    x = nil->next;
    while(x != nil && x->key != data) {
        x = x->next;
    }
    
    return x;
}

void Del(NodePointer x)
{
    x->prev->next = x->next;
    x->next->prev = x->prev;
    free(x);
}


