#include <iostream>
#include <string>
using namespace std;
struct deque{
#define Size 200000
int start, end;
int folder[Size];
deque(){
start = end = Size/2;
}
void push_front(int var){
folder[--start] = var;
cout << "ok" << endl;
}
void push_back(int var){
folder[end++] = var;
cout << "ok" << endl;
}
void pop_front(){
cout << folder[start++] << endl;
}
void pop_back(){
cout << folder[--end] << endl;
}
void front(){
cout << folder[start] << endl;
}
void back(){
cout << folder[end-1] << endl;
}
void size(){
cout << end-start << endl;
}
void clear(){
start = end = Size/2;
cout << "ok" << endl;
}
};
int main() {
string s;
deque deq;
int n;
while (cin >> s){
if (s == "push_front"){
cin >> n;
deq.push_front(n);
}
else if (s == "push_back"){
cin >> n;
deq.push_back(n);
}
else if (s == "pop_front") deq.pop_front();
else if (s == "pop_back") deq.pop_back();
else if (s == "front") deq.front();
else if (s == "back") deq.back();
else if (s == "size") deq.size();
else if (s == "clear") deq.clear();
else if (s == "exit"){
cout << "bye";
return 0;
}
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IGRlcXVlewogICAgI2RlZmluZSBTaXplIDIwMDAwMAogICAgaW50IHN0YXJ0LCBlbmQ7CiAgICBpbnQgZm9sZGVyW1NpemVdOwogICAgCiAgICBkZXF1ZSgpewogICAgICAgIHN0YXJ0ID0gZW5kID0gU2l6ZS8yOwogICAgfQogICAgdm9pZCBwdXNoX2Zyb250KGludCB2YXIpewogICAgICAgIGZvbGRlclstLXN0YXJ0XSA9IHZhcjsKICAgICAgICBjb3V0IDw8ICJvayIgPDwgZW5kbDsKICAgIH0KICAgIHZvaWQgcHVzaF9iYWNrKGludCB2YXIpewogICAgICAgIGZvbGRlcltlbmQrK10gPSB2YXI7CiAgICAgICAgY291dCA8PCAib2siIDw8IGVuZGw7CiAgICB9CiAgICB2b2lkIHBvcF9mcm9udCgpewogICAgCWNvdXQgPDwgZm9sZGVyW3N0YXJ0KytdIDw8IGVuZGw7CiAgICB9CiAgICB2b2lkIHBvcF9iYWNrKCl7CiAgICAJY291dCA8PCBmb2xkZXJbLS1lbmRdIDw8IGVuZGw7CiAgICB9CiAgICB2b2lkIGZyb250KCl7CiAgICAJY291dCA8PCBmb2xkZXJbc3RhcnRdIDw8IGVuZGw7CiAgICB9CiAgICB2b2lkIGJhY2soKXsKICAgIAljb3V0IDw8IGZvbGRlcltlbmQtMV0gPDwgZW5kbDsKICAgIH0KICAgIHZvaWQgc2l6ZSgpewogICAgCWNvdXQgPDwgZW5kLXN0YXJ0IDw8IGVuZGw7CiAgICB9CiAgICB2b2lkIGNsZWFyKCl7CiAgICAJc3RhcnQgPSBlbmQgPSBTaXplLzI7CiAgICAJY291dCA8PCAib2siIDw8IGVuZGw7IAogICAgfQp9OwoJCQppbnQgbWFpbigpIHsKCXN0cmluZyBzOwoJZGVxdWUgZGVxOwoJaW50IG47CgoJd2hpbGUgKGNpbiA+PiBzKXsKCQlpZiAocyA9PSAicHVzaF9mcm9udCIpewoJCQljaW4gPj4gbjsKCQkJZGVxLnB1c2hfZnJvbnQobik7CgkJfQoJCWVsc2UJaWYgKHMgPT0gInB1c2hfYmFjayIpewoJCQkJY2luID4+IG47CgkJCQlkZXEucHVzaF9iYWNrKG4pOwoJCX0KCQllbHNlCWlmIChzID09ICJwb3BfZnJvbnQiKQlkZXEucG9wX2Zyb250KCk7CgkJZWxzZQlpZiAocyA9PSAicG9wX2JhY2siKQlkZXEucG9wX2JhY2soKTsKCQllbHNlCWlmIChzID09ICJmcm9udCIpCWRlcS5mcm9udCgpOwoJCWVsc2UJaWYgKHMgPT0gImJhY2siKQlkZXEuYmFjaygpOwoJCWVsc2UJaWYgKHMgPT0gInNpemUiKQlkZXEuc2l6ZSgpOwoJCWVsc2UJaWYgKHMgPT0gImNsZWFyIikJZGVxLmNsZWFyKCk7CgkJZWxzZQlpZiAocyA9PSAiZXhpdCIpewoJCQkJY291dCA8PCAiYnllIjsKCQkJCXJldHVybiAwOwoJCX0KCX0KfQ==