class MinStack {
public:
void push(int x) {
ele.push(x);
if(min.empty()||x<=min.top()) // in order
{
min.push(x);
}
}
void pop() {
if(ele.empty()) return;
if(ele.top()==min.top()){
min.pop();
}
ele.pop();
}
int top() {
r eturn ele.top();
}
int getMin() {
return min.top();
}
private:
stack<int> ele;
stack<int> min;
};