package main
import (
    "fmt"
)
type Stack struct {
    data []int
}
func (s *Stack) Peek() int {
    if len(s.data) > 0 {
        return s.data[len(s.data)-1]
    }
    return -1
}
func (s *Stack) Push(value int) {
    s.data = append(s.data, value)
    fmt.Println(s.data)
}
func (s *Stack) Pop() int {
    if len(s.data) > 0 {
        ele := s.data[len(s.data)-1]
        s.data = s.data[0:len(s.data)-1]
        return ele
    }
    return -1
}
func main() {
    s := Stack{}
    s.Push(20)
    s.Push(30)
    s.Push(40)
    
    fmt.Println(s.Peek())
    fmt.Println(" Pop: " , s.Pop())
    fmt.Println(" Pop: " , s.Pop())
    fmt.Println(" Pop: " , s.Pop())
    fmt.Println(s.Peek())
}