#include<stdio.h>
#include<stdlib.h>
struct Node{
    int data;
    struct Node* next;
};
struct Node* create(int data){
    struct Node* n = (struct Node*) malloc(sizeof(struct Node));
    n->data = data;
    n->next = NULL;
    return n;
}
struct Node* reverse(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;
    }
    return prev;
}
void print(struct Node* head){
    while(head != NULL){
    printf("%d ", head->data);
    head = head->next;
    }
    printf("\n");
}
int main(){
    int n, x;
    scanf("%d", &n);
    if(n < 0){
        printf("Invalid input\n");
        return 0;
}
struct Node *head = NULL;
struct Node *tail = NULL;
for(int i = 0; i < n; i++){
    scanf("%d", &x);
    if(head == NULL){
        head = node;
        tail = node;
    }
    struct Node* node = create(x);
    if(!head) head = tail = node;
    else tail = tail->next = node;
}
head = reverse(head);
print(head);
return 0;
}