from collections import deque
import sys
N = int(input())
queue = deque()
for _ in range(N):
a = sys.stdin.readline().split()
if a[0] == 'push_front':
queue.appendleft(a[1])
elif a[0] == 'push_back':
queue.append(a[1])
elif a[0] == 'pop_front':
if queue:
print(queue.popleft())
else:
print(-1)
elif a[0] == 'pop_back':
if queue:
print(queue.pop())
else:
print(-1)
elif a[0] == 'size':
print(len(queue))
elif a[0] == 'empty':
if queue:
print(0)
else:
print(1)
elif a[0] == 'front':
if queue:
print(queue[0])
else:
print(-1)
elif a[0] == 'back':
if queue:
print(queue[-1])
else:
print(-1)
split()을 활용해 입력을 분해한 후 첫번째 원소인 a[0]가 무엇인지에 따라 각 조건의 결과를 출력한다.