import java.util.*;

class deque{
    private static final int Size = 200000;
    int start, end;
    int [] folder = new int[Size] ;
    
    deque(){
        start = end = Size/2;
    }
    void push_front(int var){
        folder[--start] = var;
        System.out.println("ok");
    }
    void push_back(int var){
        folder[end++] = var;
        System.out.println("ok");
    }
    void pop_front(){
    	System.out.println(folder[start++]);
    }
    void pop_back(){
    	System.out.println(folder[--end]);
    }
    void front(){
    	System.out.println(folder[start]);
    }
    void back(){
    	System.out.println(folder[end-1]);
    }
    void size(){
    	System.out.println(end-start);
    }
    void clear(){
    	start = end = Size/2;
    	System.out.println("ok");
    }
};

class Main
{
	public static void main (String[] args) throws java.lang.Exception
	{
		Scanner scan = new Scanner(System.in);
		deque deq = new deque();
		String S;
		
		while (scan.hasNext()){
			S = scan.next();
			if (S.equals("push_front"))	deq.push_front(scan.nextInt());
			else	if (S.equals("push_back"))	deq.push_back(scan.nextInt());
			else	if (S.equals("pop_front"))	deq.pop_front();
			else	if (S.equals("pop_back"))	deq.pop_back();
			else	if (S.equals("front"))	deq.front();
			else	if (S.equals("back"))	deq.back();
			else	if (S.equals("size"))	deq.size();
			else	if (S.equals("clear"))	deq.clear();
			else	if (S.equals("exit")){
					System.out.println("bye");
					System.exit(0);
				}
		}
	}
}