- #include <iostream> 
- #include <vector> 
- #include <string> 
- using namespace std; 
- struct Deque 
- { 
- 	vector<int> box1; 
- 	vector<int> box2; 
- 	int n, box_size=0; 
- 	void push_front(int n) 
- 	{ 
- 		box1.push_back(n); 
- 		box_size++; 
- 	} 
- 	void push_back(int n) 
- 	{ 
- 		box2.push_back(n); 
- 		box_size++; 
- 	} 
- 	int pop_front() 
- 	{ 
- 		if(box1.size()>0) 
- 		{ 
- 			int a=box1[box1.size()-1]; 
- 			box1.erase(box1.end()-1); 
- 			box_size--; 
- 			return a; 
- 		} 
- 		else if(box2.size()>0) 
- 		{ 
- 			int a=box2[0]; 
- 			box2.erase(box2.begin()); 
- 			box_size--; 
- 			return a; 
- 		} 
- 		return 1; 
- 	} 
- 	int pop_back() 
- 	{ 
- 		if(box2.size()>0) 
- 		{ 
- 			int a=box2[box2.size()-1]; 
- 			box2.erase(box2.end()-1); 
- 			box_size--; 
- 			return a; 
- 		} 
- 		else if(box1.size()>0) 
- 		{ 
- 			int a=box1[0]; 
- 			box1.erase(box1.begin()); 
- 			box_size--; 
- 			return a; 
- 		} 
- 		return 1; 
- 	} 
- 	int front() 
- 	{ 
- 		if(box1.size()>0) 
- 		{ 
- 			int a=box1[box1.size()-1]; 
- 			return a; 
- 		} 
- 		else if(box2.size()>0) 
- 		{ 
- 			int a=box2[0]; 
- 			return a; 
- 		} 
- 		return 1; 
- 	} 
- 	int back() 
- 	{ 
- 		if(box2.size()>0) 
- 		{ 
- 			int a=box2[box2.size()-1]; 
- 			return a; 
- 		} 
- 		else if(box1.size()>0) 
- 		{ 
- 			int a=box1[0]; 
- 			return a; 
- 		} 
- 		return 1; 
- 	} 
- 	int size() 
- 	{ 
- 		return box_size; 
- 	} 
- 	string clear() 
- 	{ 
- 		box1.erase(box1.begin(), box1.end()); 
- 		box2.erase(box2.begin(), box2.end()); 
- 		box_size=0; 
- 		return "ok"; 
- 	} 
- 	string exit() 
- 	{ 
- 		return "bye"; 
- 	} 
- }; 
- int main()  
- { 
- 	Deque a; 
- 	string s; 
- 	while(cin>>s) 
- 	{ 
- 		if(s=="push_front") 
- 		{ 
- 			int n; 
- 			cin>>n; 
- 			a.push_front(n); 
- 			cout<<"ok"<<endl; 
- 		} 
- 		if(s=="push_back") 
- 		{ 
- 			int n; 
- 			cin>>n; 
- 			a.push_back(n); 
- 			cout<<"ok"<<endl; 
- 		} 
- 		if(s=="pop_front") 
- 		{ 
- 			cout<<a.pop_front()<<endl; 
- 		} 
- 		if(s=="pop_back") 
- 		{ 
- 			cout<<a.pop_back()<<endl; 
- 		} 
- 		if(s=="front") 
- 		{ 
- 			cout<<a.front()<<endl; 
- 		} 
- 		if(s=="back") 
- 		{ 
- 			cout<<a.back()<<endl; 
- 		} 
- 		if(s=="size") 
- 		{ 
- 			cout<<a.size()<<endl; 
- 		} 
- 		if(s=="clear"){ 
- 			a.clear(); 
- 			cout<<a.clear()<<endl; 
- 		} 
- 		if(s=="exit") 
- 		{ 
- 			cout<<a.exit()<<endl; 
- 			break; 
- 		} 
- 	} 
- 	return 0; 
- } 
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpzdHJ1Y3QgRGVxdWUKewoJdmVjdG9yPGludD4gYm94MTsKCXZlY3RvcjxpbnQ+IGJveDI7CglpbnQgbiwgYm94X3NpemU9MDsKCXZvaWQgcHVzaF9mcm9udChpbnQgbikKCXsKCQlib3gxLnB1c2hfYmFjayhuKTsKCQlib3hfc2l6ZSsrOwoJfQoJdm9pZCBwdXNoX2JhY2soaW50IG4pCgl7CgkJYm94Mi5wdXNoX2JhY2sobik7CgkJYm94X3NpemUrKzsKCX0KCWludCBwb3BfZnJvbnQoKQoJewoJCWlmKGJveDEuc2l6ZSgpPjApCgkJewoJCQlpbnQgYT1ib3gxW2JveDEuc2l6ZSgpLTFdOwoJCQlib3gxLmVyYXNlKGJveDEuZW5kKCktMSk7CgkJCWJveF9zaXplLS07CgkJCXJldHVybiBhOwoJCX0KCQllbHNlIGlmKGJveDIuc2l6ZSgpPjApCgkJewoJCQlpbnQgYT1ib3gyWzBdOwoJCQlib3gyLmVyYXNlKGJveDIuYmVnaW4oKSk7CgkJCWJveF9zaXplLS07CgkJCXJldHVybiBhOwoJCX0KCQlyZXR1cm4gMTsKCX0KCWludCBwb3BfYmFjaygpCgl7CgkJaWYoYm94Mi5zaXplKCk+MCkKCQl7CgkJCWludCBhPWJveDJbYm94Mi5zaXplKCktMV07CgkJCWJveDIuZXJhc2UoYm94Mi5lbmQoKS0xKTsKCQkJYm94X3NpemUtLTsKCQkJcmV0dXJuIGE7CgkJfQoJCWVsc2UgaWYoYm94MS5zaXplKCk+MCkKCQl7CgkJCWludCBhPWJveDFbMF07CgkJCWJveDEuZXJhc2UoYm94MS5iZWdpbigpKTsKCQkJYm94X3NpemUtLTsKCQkJcmV0dXJuIGE7CgkJfQoJCXJldHVybiAxOwoJfQoJaW50IGZyb250KCkKCXsKCQlpZihib3gxLnNpemUoKT4wKQoJCXsKCQkJaW50IGE9Ym94MVtib3gxLnNpemUoKS0xXTsKCQkJcmV0dXJuIGE7CgkJfQoJCWVsc2UgaWYoYm94Mi5zaXplKCk+MCkKCQl7CgkJCWludCBhPWJveDJbMF07CgkJCXJldHVybiBhOwoJCX0KCQlyZXR1cm4gMTsKCX0KCWludCBiYWNrKCkKCXsKCQlpZihib3gyLnNpemUoKT4wKQoJCXsKCQkJaW50IGE9Ym94Mltib3gyLnNpemUoKS0xXTsKCQkJcmV0dXJuIGE7CgkJfQoJCWVsc2UgaWYoYm94MS5zaXplKCk+MCkKCQl7CgkJCWludCBhPWJveDFbMF07CgkJCXJldHVybiBhOwoJCX0KCQlyZXR1cm4gMTsKCX0KCWludCBzaXplKCkKCXsKCQlyZXR1cm4gYm94X3NpemU7Cgl9CglzdHJpbmcgY2xlYXIoKQoJewoJCWJveDEuZXJhc2UoYm94MS5iZWdpbigpLCBib3gxLmVuZCgpKTsKCQlib3gyLmVyYXNlKGJveDIuYmVnaW4oKSwgYm94Mi5lbmQoKSk7CgkJYm94X3NpemU9MDsKCQlyZXR1cm4gIm9rIjsKCX0KCXN0cmluZyBleGl0KCkKCXsKCQlyZXR1cm4gImJ5ZSI7Cgl9Cn07CmludCBtYWluKCkgCnsKCURlcXVlIGE7CglzdHJpbmcgczsKCXdoaWxlKGNpbj4+cykKCXsKCQlpZihzPT0icHVzaF9mcm9udCIpCgkJewoJCQlpbnQgbjsKCQkJY2luPj5uOwoJCQlhLnB1c2hfZnJvbnQobik7CgkJCWNvdXQ8PCJvayI8PGVuZGw7CgkJfQoJCWlmKHM9PSJwdXNoX2JhY2siKQoJCXsKCQkJaW50IG47CgkJCWNpbj4+bjsKCQkJYS5wdXNoX2JhY2sobik7CgkJCWNvdXQ8PCJvayI8PGVuZGw7CgkJfQoJCWlmKHM9PSJwb3BfZnJvbnQiKQoJCXsKCQkJY291dDw8YS5wb3BfZnJvbnQoKTw8ZW5kbDsKCQl9CgkJaWYocz09InBvcF9iYWNrIikKCQl7CgkJCWNvdXQ8PGEucG9wX2JhY2soKTw8ZW5kbDsKCQl9CgkJaWYocz09ImZyb250IikKCQl7CgkJCWNvdXQ8PGEuZnJvbnQoKTw8ZW5kbDsKCQl9CgkJaWYocz09ImJhY2siKQoJCXsKCQkJY291dDw8YS5iYWNrKCk8PGVuZGw7CgkJfQoJCWlmKHM9PSJzaXplIikKCQl7CgkJCWNvdXQ8PGEuc2l6ZSgpPDxlbmRsOwoJCX0KCQlpZihzPT0iY2xlYXIiKXsKCQkJYS5jbGVhcigpOwoJCQljb3V0PDxhLmNsZWFyKCk8PGVuZGw7CgkJfQoJCWlmKHM9PSJleGl0IikKCQl7CgkJCWNvdXQ8PGEuZXhpdCgpPDxlbmRsOwoJCQlicmVhazsKCQl9Cgl9CglyZXR1cm4gMDsKfQ==