Min Stack

Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.