// editor2#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

typedef struct Node {
    int data;
    struct Node* next;
} Node;

int isNumeric(const char* str) {
    while (*str) {
        if (!isdigit(*str) && *str != '-') return 0;
        str++;
    }
    return 1;
}

Node* insertMiddle(Node* head, int val, int n) {
    Node* newNode = (Node*)malloc(sizeof(Node));
    newNode->data = val;
    newNode->next = NULL;

    if (n == 0) return newNode;

    int mid = n / 2;
    Node* temp = head;
    for (int i = 0; i < mid - 1; i++)
        temp = temp->next;

    newNode->next = temp->next;
    temp->next = newNode;

    return head;
}

void printList(Node* head) {
    while (head) {
        printf("%d ", head->data);
        head = head->next;
    }
}

int main() {
    int n, val;
    if (scanf("%d", &n) != 1 || n < 0 || n > 1000) {
        printf("Invalid input\n");
        return 0;
    }

    Node* head = NULL;
    Node* tail = NULL;
    for (int i = 0; i < n; i++) {
        int x;
        if (scanf("%d", &x) != 1) {
            printf("Invalid input\n");
            return 0;
        }
        Node* newNode = (Node*)malloc(sizeof(Node));
        newNode->data = x;
        newNode->next = NULL;
        if (!head) head = tail = newNode;
        else {
            tail->next = newNode;
            tail = newNode;
        }
    }

    if (scanf("%d", &val) != 1) {
        printf("Invalid input\n");
        return 0;
    }

    head = insertMiddle(head, val, n);
    printList(head);
    return 0;
}