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

typedef struct Node{
	int key;
	struct Node *next;
	struct Node *prev;
}Node;

Node *nil, *x;

Node* listSearch(int key){
	Node *c = nil->next;
	while(c != nil && c->key != key){
		c = c->next;
	}
	return c;
}

void insert(int key){
  x = (Node *)malloc(sizeof(Node));
  x->key = key;
  x->next = nil->next;
  nil->next->prev = x;
  nil->next = x;
  x->prev = nil;
}

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

void printList(){
	Node *c = nil->next;
	int i = 0;
	while(1){
		if(c == nil){
			break;
		}
		else if(i++ > 0){
			printf(" ");
		}
		printf("%d" ,c->key);
		c = c->next;
	}
	printf("\n");
}

void deleteNode(Node *t){
	if(t == nil){
		return;
	}
	else{
		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));
}

int main()
{
	int key, n, i;
	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++;
		}
		else if(com[0] == 'd'){
			if(strlen(com) > 6){
				if(com[6] == 'F'){
					deleteFirst();
				}
				else if(com[6] == 'L'){
					deleteLast();
				}
			}
			else{
				deleteKey(key);
				nd++;
			}
		}
	}
	printList();
	return 0;
	
}

