package main
import (
"fmt"
)
func main() {
num := 0
for {
n, _ := fmt.Scan(&num)
if n == 0 {
break
} else {
stack := make([]int, num)
stack2 := make([]int, 0)
for i:=0; i<num; i++ {
fmt.Scan(&stack[i])
}
process(stack, &stack2)
for i:=num; i>0; i-- {
if i == 1 {
fmt.Println(stack2[len(stack2)-1])
} else {
fmt.Printf("%+v ", stack2[len(stack2)-1])
}
stack2 = stack2[:len(stack2)-1]
}
}
}
}
func process(stack []int, stack2 *[]int) {
if len(stack) == 0 {
return
}
// 先序遍历,拿到数据压入栈stack2中
popv := stack[len(stack)-1]
stack = stack[:len(stack)-1]
*stack2 = append(*stack2, popv)
process(stack, stack2)
}