- #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==