#include<stdio.h>
int MinIndex(int a[], int n){
int i,min=a[0],k;
for(i=1;i<n;i++){
if(min>a[i]){
min = a[i];
k = i;
}
}
return k;
} //函数返回数组a中最小元素的下标
int MaxIndex(int a[], int n){
int i,max=a[0],k;
for(i=1;i<n;i++){
if(max<a[i]){
max = a[i];
k = i;
}
}
return k;
} //函数返回数组a中最大元素的下标
/*另外函数仍然调用以前定义过的函数PrintArr()输出数组所有元素。 */
void PrintArr(int a[], int n){
int i;
for(i =0; i<n; i++){
if(i<n-1) printf("%d ",a[i]);
else printf("%d",a[i]);
}
}/*输出数组a的前n个元素*/
int main()
{
int i,n,b[1001],min,max,temp;
scanf("%d",&n);
for(i =0; i<n; i++){
scanf("%d",&b[i]);
}
min=MinIndex(b, n);
temp = b[min];
b[min] = b[0];
b[0] = temp;
max=MaxIndex(b, n);
temp = b[max];
b[max] = b[n-1];
b[n-1] = temp;
PrintArr(b, n);
return 0;
}