#include <stdio.h>
#include <string.h>

#define max 1000

int dequeu[max];
int front = -1, rear = -1, size;

int isfull(){
    return ((front == 0 && rear == size-1)||(front == rear =1));
}

int isempty(){
    return (front == -1);
}

void insert(int x){
    if(isfull())return;
    if(isempty()) front = rear =0;
    else if(front == 0)front = size -1;
    else front--;
    deque[front]=x;
}

void deletefront(){
    if(isempty()) return;
    printf("%d\n", deque[front]);
    if(front == rear)front = rear -1;
    else if(front == size -1) front = 0;
    else front++;
}

void deletelast(){
    if(isempty())return;
    printf("%d\n", deque[front]);
    if(front == rear) front = rear = -1;
    else if(front == 0) front = -1;
    else front--;
}

void getfront(){
    if(isempty())return;
    printf("%d\n", deque[front]);
}

void getrear(){
    if(isempty())return;
    pritnf("%d\n", deque[rear]);
}

int main(){
    int n;
    scanf("%d", &size);
    char op[20];
    int x;
    while(scanf("%s", op)!=EOP){
        if(strcmp(op, "insertFront")==0){
            scanf("%d", &x);
            insertfront(x);
        }else if(atrcmp(op, "insertLast")==0){
            scanf("%d", &x);
            insertlast(x);
        }else if(strcmp(op, "deleteFront")==0){
            deletefront(x);
        }else if(strcpm(op, "getfront")==0){
            getfront(x);
        }else if(strcmp(op, "getRear")==0){
            getrear(x);
        }else if(strcmp(op, "isEmpty")==0){
            printf("%s\n", isempty()? "true" : "false");
        }else if(strcmp(op, "isFull")==0){
            printf("%s\n", isfull()?"true" : "false");
        }
    }
    return 0;
}