#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct Node
{
    int key;
    struct Node *prev,*next;
};
typedef struct Node Node;

Node *Nil;

void init()
{
    Nil = (Node *)malloc(sizeof(Node));
    Nil->next = Nil;
    Nil->prev = Nil;
}
void insert(int key)
{
    Node *x =(Node*)malloc(sizeof(Node));
    x->key = key;
    //Insert Behind Head
    x->next = Nil->next;
    x->next->prev = x;
    Nil->next = x;
    x->prev = Nil;
}
Node *listSearch(int key)
{
    Node *cur = Nil->next;
    while(cur->key!=key && cur != Nil)
    {
        cur = cur->next;
    }
    return cur;
}
void deleteNode(Node *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 deleteKey(int key)
{
    deleteNode(listSearch(key));
}
void printList()
{
    Node *cur = Nil->next;
    int isf = 0;
    while(1)
    {
        if(cur == Nil)break;
        if(isf++ > 0)printf(" ");
        printf("%d",cur->key);
        cur = cur->next;
    }
    printf("\n");
}
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%d",com,&key);
        if(com[0]=='i'){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
            {
                deleteKey(key);
                nd++;
            }
            size--;
        }
    }
    printList();

    return 0;
}

