#include <stdio.h>
#include <stdlib.h>

struct node
{
	int data;
	struct node *next;
};
struct node *head;

void addToSLL(int n)
{
	struct node *cur;

	cur = (struct node *)malloc(sizeof(struct node));
	cur->next = 0;
	cur->data = n;
	if (head == 0)
	{
		head = cur;
		return;
	}
	else
	{
		struct node *temp = head;
		while (temp->next != 0)
		{
			temp = temp->next;
		}
		temp->next = cur;
		return;
	}
}

void showSLL()
{
	struct node *cur = head;
	while (cur != 0)
	{
		printf("%d ", cur->data);
		cur = cur->next;
	}
	return;
}

void show_reverseSLL(int num)
{
	int n = num;
	while (n--)
	{
		struct node *cur = head;
		for (int i = 0; i<n; i++)
		{
			cur = cur->next;
		}
		printf("%d ", cur->data);
	}
	return;
}

int main(void)
{
	int num;
	int data;
	int i;

	scanf("%d", &num);

	for (i = 0; i < num; i++)
	{
		scanf("%d", &data);
		addToSLL(data);
	}

	show_reverseSLL(num);
	return 0;
}