eolymp
bolt
Try our new interface for solving problems
Problems

Deque of infinite size

Deque of infinite size

Time limit 1 second
Memory limit 256 MiB

Implement the "deque" data structure. Write a program that describes the deque and simulates its operations. You must implement all methods given below. The program reads the sequence of commands and executes the corresponding operation. After executing each command the program must print one line. The possible commands for the program are:

push_front

Add (put) into the front of the deque the new element. The program must print ok.

push_back

Add (put) into the end of the deque the new element. The program must print ok.

pop_front

Pop the first element from the deque. The program must print its value.

pop_back

Pop the last element from the deque. The program must print its value.

front

Find the value of the first element (not deleting it). The program must print its value.

back

Find the value of the last element (not deleting it). The program must print its value

size

Print the number of elements in the deque.

clear

Clear the deque (delete all its elements) and print ok.

exit

The program must print bye and terminate.

The size of the deque is limited only by the available memory. Before the execution of the operations pop_front, pop_back, front, back the program should check first whether the deque contains at least one element. When we have the input operation pop_front, pop_back, front, back but the deque is empty, the program must print the line error instead of numeric value.

Input data

Given in the problem statement. Look at sample input.

Output data

Given in the problem statement. Look at sample output.

Examples

Input example #1
push_back 1
back
exit
Output example #1
ok
1
bye