#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 1 = 0; i < n; i++){
        scanf("%d", &x);
        struct Node* node = create(x);
        if(head == NULL);
        head = tail = node;
    }else{
        tail->next = node;
        tail = node;
    }
}
head = remove(head);
print(head);
return 0;
}
    }
    }
    }
}
    }
}
    }
}
}
}