/* Doubly Linked List */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

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

typedef struct node *NodePointer;

NodePointer nil;

NodePointer listSearch(int key)
{
    NodePointer p = nil -> next;
    while(1){
        if(p -> key == key){ break; }
        if(p -> next == nil){ return nil; }
        p = p -> next;
    }
    return p;
}

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

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

void deleteNode(NodePointer t)
{
    t -> prev -> next = t -> next;
    t -> next -> prev = t -> prev;
    free(t);
    return;
}

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

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

void delete(int key)
{
    NodePointer x;
    x = listSearch(key);
    if(x != nil){ deleteNode(x); }
    return;
}

void insert(int key)
{
    NodePointer x;
    x = malloc(sizeof(struct node));
    x -> key = key;
    x -> prev = nil;
    if(nil -> next == nil){
        nil -> next = x;
        x -> next = nil;
        nil -> prev = x;
    } else{
        nil -> next -> prev = x;
        x -> next = nil -> next;
        nil -> next = x;
    }
    return;
}

int main()
{
    int key, 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", com);
        if(com[0] == 'i'){
            scanf("%d", &key);
            insert(key);
            np++;
            size++;
        } else if(com[0] == 'd'){
            if(strlen(com) > 6){
                if(com[6] == 'F'){ deleteFirst(); }
                else if(com[6] == 'L'){ deleteLast(); }
                } else{
                    scanf("%d", &key);
                    delete(key);
                    nd++;
                }
                size--;
        }
    }
    printList();
    return 0;
}
