#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;
    head->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;
}