package main

import "container/list"

var list1 list.List
var list2 list.List

func push(element int) {
	list1.PushBack(element)
}

func pop() int {
	if list1.Len() == 0 {
		for list2.Len() != 0 {
			e := list2.Front()
			list2.Remove(e)
			list1.PushBack(e.Value)
		}
	}
	for list1.Len() > 1 {
		e := list1.Front()
		list1.Remove(e)
		list2.PushBack(e.Value)
	}
	e := list1.Front()
	list1.Remove(e)
	return e.Value.(int)
}

func top() int {
	if list1.Len() == 0 {
		for list2.Len() != 0 {
			e := list2.Front()
			list2.Remove(e)
			list1.PushBack(e.Value)
		}
	}
	for list1.Len() > 1 {
		e := list1.Front()
		list1.Remove(e)
		list2.PushBack(e.Value)
	}
    e := list1.Front()
	return e.Value.(int)
}

func empty() bool {
    return list1.Len() == 0 && list2.Len() ==0
}