#include <cmath>
#include <stack>
#include <vector>
class Solution {
public:
stack<int> zhan;
    void push(int value) {
        zhan.push(value);
    }
    void pop() {
        zhan.pop();
    }
    int top() {
        return zhan.top();
    }
    int min() {
        int min = pow(10, 9) + 1;
        vector<int> shuzu;
        while (!zhan.empty()) {
            shuzu.push_back(zhan.top());
            if (min > zhan.top()){
                min = zhan.top();
            }
            zhan.pop();
        }
        for (int i = shuzu.size() - 1; i >= 0; i--){
            zhan.push(shuzu[i]);
        }

        return min;
    }
};