// editor1
#include<stdio.h>
#include<string.h>

#define MAX 1005

int deque[MAX],front,rear,size,capacity;

void init(int cap){
    capacity=cap;
    front=0;
    rear=-1;
    size=0;
}
int isEmpty(){return size == 0;}
int isFull(){ return size == capacity;}

void insertFront(int x){
    if (isFull())return;
    front=(front - 1 + capacity)% capacity;
    deque[front]=x;
    size++;
    if(rear ==-1)rear=front;
}
void insertLast(int x){
    if(isFull())return ;
    rear=(rear + 1)%capacity;
    deque[rear]=x;
    size++;
}
void deleteFront(){
    if(isEmpty()) return;
    printf("%d\n",deque[front]);
    front=(front+ 1)% capacity;
    size--;
}
void deleteLast(){
    if(isEmpty())return;
    rear=(rear - 1+ capacity)%capacity;
    size--;
}
void getFront(){
    if(!isEmpty())
    printf("%d\n",deque[front]);
}
void getRear(){
    if(!isEmpty())
    printf("%d\n",deque[rear]);
}
int isEmpty(){return size == 0;}


int main (){
    int n,x;
    char op[20];
    scanf("%d",&n);
    init(n);
    while(scanf("%s",op)!=EOF){
        if(strcmp(op,"insertFront")==0){
            scanf("%d",&x);
            insertFront(x);
        }else if(strcmp(op,"insertLast")==0){
            scanf("%d",&x);
            insertLast(x);
        }else if(strcmp(op,"deleteFront")==0){
            deleteFront();
        }else if(strcmp(op,"deleteLast")==0){
            deleteLast();
        }
    }
    return 0;
}