#include <iostream>
#include <algorithm>
using namespace std;

int main() {
    int n;
    cin >> n;
    int a[105];
    for (int i = 0; i < n; ++i) cin >> a[i];

    int minIdx = 0, maxIdx = 0;
    for (int i = 1; i < n; ++i) {
        if (a[i] < a[minIdx]) minIdx = i;
        if (a[i] > a[maxIdx]) maxIdx = i;
    }

    swap(a[minIdx], a[0]);          // 最小值移到最前

    // 如果最大值恰好是原首元素,它已被换到 minIdx
    if (maxIdx == 0) maxIdx = minIdx;
    swap(a[maxIdx], a[n - 1]);      // 最大值移到最后

    for (int i = 0; i < n; ++i) {
        cout << a[i] << (i == n - 1 ? '\n' : ' ');
    }
    return 0;
}
/**************************************************************
	Problem: 1212
	User: 231308061
	Language: C++
	Result: Accepted
	Time:8 ms
	Memory:2072 kb
****************************************************************/