#include <stdio.h>
#include <stdlib.h>

struct Node {
    int data;
    struct Node* next;
};


struct Node* createNode(int val) {
    struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
    newNode -> data = val;
    newNode -> next = NULL;
    return newNode;
}



struct Node* reverseOrder(struct Node* head){
    struct Node* prev = NULL;
    struct Node* curr = head;
    struct Node* next = NULL;
    
    while(curr != NULL) {
        next = curr -> next;
        curr -> next = prev;
        prev = curr;
        curr = next;
    }
    head = prev;
    return prev;
}


void printList(struct Node* head) {
    struct Node* temp = head;
    while (temp != NULL){
        printf("%d ", temp -> data);
        temp = temp -> next;
    }
}



int main() {
    
    int n, i;
    
    if(scanf("%d", &n) != 1 || n < 1 || n > 100) {
        printf("Invalid input");
        return 0;
    }
    
    int arr[n];
    for(i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
        
        
        struct Node* node = createNode(arr[i]);
        if(head == NULL) {head = tail = node;}
        else {
            tail -> next = node;
            tail = node;
        }
        
        
        
    }
    head = reverseOrder(head);
    printList(head);
    
    
    return 0;
}