func (s *StackWithMin) Pop() int {
	v := s.s.Pop()
	if v == s.Min() {
		s.sm.Pop()
	}
	return v
}
// Pop removes a value from stack and returns it

Pop removes a value from stack and returns it
// Pop removes a value from stack and returns it
func (s *StackWithMin) Pop() int {
	v := s.s.Pop()
	if v == s.Min() {
		s.sm.Pop()
	}
	return v
}
func ( s * StackWithMin ) Pop ( ) int { v := s . s . Pop ( ) if v == s . Min ( ) { s . sm . Pop ( ) } return v }
Pop removes a value from stack and returns it
Pop removes a value from stack and returns it