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)
}