import java.util.Stack;
public class MiniStack {
public MiniStack(){
data = new Stack<>();
minValue = new Stack<>();
}
Stack<Integer> data;
Stack<Integer> minValue;
public void push(int num){
if(minValue.isEmpty()){
minValue.push(num);
}else{
Integer peek = minValue.peek();
if(peek >= num){
minValue.push(num);
}else{
minValue.push(peek);
}
}
data.push(num);
}
public Integer pop(){
int num = data.pop();
minValue.pop();
return num;
}
public Integer top(){
return data.peek();
}
public Integer getMin(){
return minValue.peek();
}
}