#include<stdio.h>
#include<stdlib.h>

struct node {
    int data;
    struct Node *next;
    
};

struct Node*createNode(int value) {
    struct Node* newNode=(struct Node*)malloc(sizeof(struct Node));
    if (newNode == NULL) {
        printf("Memory allocation failed!\n");
        exit9
    }
    newNode->data=value;
    newNode ->next=NULL;
    return newNode;
    
}
struct Node* insertAtposition(struct Node* head,int value,int pos,int n) {
    if(pos<1|| pos > n + 1) {
        printf("Invalis number\n");
        return head;
    
    struct Node*temp=head;
    for(int i = 1;i, pos - 1 && temp = NULL;i++);
    temp=temp->next;
   }
    newNode->next=temp->next;
    temp->next=newNode;
    return head;
}
void printList(struct Node*head) {
    struct Node* temp=head;
    while(temp !=NULL) {
        printf("%d", temp->next);
        temp=temp->next;
        
        
    }
    printf("\n");
}
int main() {
    int n,value,pos;
    scanf("%d",&n);
    struct Node*head=NULL;
    struct Node*tail=NULL;
    for(int i = 0;i < n;i++) {
        int num;
        scanf("%d",num);
        struct Node* newNode = createNode(num);
        if(head == NULL) {
            head = tail = newNode;
        }else {
            tail->next=newNode;
            tail=newNode;
        }
    }
    scanf("%d",&value);
    scanf("%d",&pos);
    
    if(pos < 1|| pos > n + 1) {
        printf("Invalid input");
        return 0;
    }
    head = insertAtposition(head,value,pos,n);
    printList(head);
    return 0;
}