// editor2
#include <stdio.h>
#include <stdlib.h>

// Define a structure for a linked list node
typedef struct Node {
    int data;
    struct Node* next;
} Node;

// Function to create a new node
Node* createNode(int data) {
    Node* newNode = (Node*)malloc(sizeof(Node));
    if (!newNode) {
        printf("Memory error\n");
        return NULL;
    }
    newNode->data = data;
    newNode->next = NULL;
    return newNode;
}

// Function to insert at middle and print the list
void insertAtMiddle(int n, int* events, int val) {
    Node* head = NULL;
    Node* temp = NULL;
    // Create linked list
    for (int i = 0; i < n; i++) {
        Node* newNode = createNode(events[i]);
        if (!head) {
            head = newNode;
            temp = head;
        } else {
            temp->next = newNode;
            temp = temp->next;
        }
    }

    // Calculate middle index
    int middle = n % 2 == 0 ? n / 2 : (n + 1) / 2;
    Node* prev = NULL;
    temp = head;
    for (int i = 0; i < middle; i++) {
        prev = temp;
        temp = temp->next;
    }
    Node* newNode = createNode(val);
    if (prev) {
        prev->next = newNode;
        newNode->next = temp;
    } else {
        newNode->next = head;
        head = newNode;
    }

    // Print updated list
    temp = head;
    while (temp) {
        printf("%d ", temp->data);
        temp = temp->next;
    }
    printf("\n");
}

int main() {
    int n;
    if (scanf("%d", &n) != 1) {
        printf("Invalid input\n");