#include<stdio.h>
#include<stdlib.h>

typedef struct node
{
    int data;
    struct node *next;
    struct node *prev;
}Node;

Node *head = NULL;

void create(int num)
{
    node *newNode,*last=NULL;
    int val;
    for(int i=0;i<num;i++)
    {
        scanf("%d",&val);
        
    newNode=(Node*)malloc(sizeof(Node));
    newNode->data=val;
    newNode->next=NULL;
    newNode->prev=NULL;
    if(head==NULL)
    {
        head=newNode;
        head->next=head;
        head->prev=head;
        last=head;
    }
    else
    {
        newNode->next=head;
        newNode->prev=last;
        last->next=newNode;
    }
    else
    {
    newNode->next=head;
    newNode->prev=last;
    last->next=newNode;
    haed->prev=newNode;
    last=newNode;
    }
}
}
void insert(int val)
{
    node *newNode=(Node*)malloc(sizeof(Node))
    newNode->data=val;
    if(head == NULL){
        newNode->next=newNode;
        newNode->prev=newNode;
        head=newNode;
        return 0;
    }
    else
    {
    Node *last=head->prev;
    newNode->next=head;
    newNode->prev=last;
    last->next=newNode;
    head->prev=newNode;
    head=newNode;
    
    }
}
void display()
{
    Node *temp=head;
    printf("%d ",temp->data);
    temp=temp->prev;
    while(temp!=head) {
        printf("%d ",temp->data);
        temp=temp->prev;
    }
}
int main()
{
    int n,val;
    scanf("%d",&n);
    if(n<=0) {
        printf("Invalid input");
        return 0;
    }
    
        create(n);
    
    scanf("%d",&val);
    insert(val);
    display();
    return 0;
}