class MinStack(object):
def __init__(self):
self.st = []
self.mn = []
def push(self, x):
self.st.append(x)
self.mn.append(x if not self.mn or self.mn[-1] > x else self.mn[-1])
def pop(self):
self.st.pop()
self.mn.pop()
def top(self):
return self.st[-1]
def getMin(self):
return self.mn[-1]