1class MinStack:2    def __init__(self):3        self.stack = []  # (val, min) pairs4    def push(self, val):5        if not self.stack:6            cur_min = val7        else:8            cur_min = min(val, self.stack[-1][1])9        self.stack.append((val, cur_min))10    def pop(self):11        self.stack.pop()12    def top(self):13        return self.stack[-1][0]14    def getMin(self):15        return self.stack[-1][1]