#!/usr/bin/env python
# Queue aus zwei Stacks

# verwendet deque aus collections 
from collections import deque

# zwei Stacks s[0], s[1]; push = append
s = [deque(),deque()]   
aktiv = 0   # Start mit linkem Stack

def umlagern():
    global aktiv
    anderer = 1-aktiv
    while len(s[aktiv]) > 0:
        elem = s[aktiv].pop()
        s[anderer].append(elem)
    aktiv = anderer

def enqueue(x):
    global aktiv
    if aktiv != 0:
        # Modus-Wechsel
        umlagern()
    s[aktiv].append(x)

def dequeue():
    global aktiv
    if aktiv != 1:
        # Modus-Wechsel 
        umlagern()
    return s[aktiv].pop()

for i in range(5):
    enqueue(i)
for i in range(5):
    print (dequeue())




