import java.util.*;

public class StackDemo1<T> {
	private ArrayList<T> stack;
	
	public StackDemo1() {
		stack = new ArrayList<T>();
	}
	
	public boolean empty() {
		return stack.size() == 0;
	}
	
	// requires !empty()
	// ensures that top() is removed
	public void pop() {
		stack.remove(stack.size() - 1);
	}
	
	// ensures top() == element
	public void push(T element) {
		stack.add(element);
	}
	
	// requires !empty()
	// ensures that the last element pushed is returned 
	public T top() {
		return stack.get(stack.size() - 1);
	}
}
