# -*- coding:utf-8 -*-
class Solution:
    def __init__(self) -> None:
        self.data = list()
        self.min_data = list()

    def push(self, node):
        self.data.append(node)
        if len(self.min_data) == 0:
            self.min_data.append(node)
        else:
            self.min_data.append(min(node, self.min_data[-1]))
    def pop(self):
        self.data.pop()
        self.min_data.pop()

    def top(self):
        return self.data[-1]
    def min(self):
        return self.min_data[-1]