#include <iostream>
using namespace std;

struct LNode {
    int data;
    LNode *next;
};

int main() {
    int n;
    cin >> n;
    int arr[n];

    for(int i = 0; i < n; i++){
        cin >> arr[i];
    }
    
    if (n > 1) {
        // 交换第一个和第二个元素
        int temp = arr[0];
        arr[0] = arr[1];
        arr[1] = temp;

        // 交换倒数第二个和倒数第一个元素
        temp = arr[n - 2];
        arr[n - 2] = arr[n - 1];
        arr[n - 1] = temp;
    }

    // 创建链表并输出交换后的数组
    LNode *head = new LNode();
    LNode *t1 = head;
    for(int i = 0; i < n; i++){
        LNode *t = new LNode();
        t->data = arr[i];
        t1->next = t;
        t1 = t1->next;
    }
    t1 = head->next;

    while(t1 != NULL){
        cout << t1->data << " ";
        t1 = t1->next;
    }
    return 0;
}