#include <iostream>
using namespace std;
int main(){
int n;
cin >> n;
int arr[n];
int minPos;
int maxPos;
int flag;//第三行输入一个整数0或1, 0代表升序排序,1代表降序排序
int temp = 0;
for(int i = 0; i < n; i++){
cin >> arr[i];
}
cin >> flag;
for(int i = 0; i < n; i++){
if(flag == 0){
minPos = i;
for(int j = i+1; j < n; j++){
if(arr[j] < arr[minPos]){
minPos = j;
}
}
if(i != maxPos){
temp = arr[minPos];
arr[minPos] = arr[i];
arr[i] = temp;
}
}
else if(flag == 1){
maxPos = i;
for(int j = i+1; j < n; j++){
if(arr[j] > arr[maxPos]){
maxPos = j;
}
}
if( i != maxPos ){
temp = arr[maxPos];
arr[maxPos] = arr[i];
arr[i] = temp;
}
}
}
for(int i = 0; i < n; i++){
cout << arr[i] << " ";
}
}
using namespace std;
int main(){
int n;
cin >> n;
int arr[n];
int minPos;
int maxPos;
int flag;//第三行输入一个整数0或1, 0代表升序排序,1代表降序排序
int temp = 0;
for(int i = 0; i < n; i++){
cin >> arr[i];
}
cin >> flag;
for(int i = 0; i < n; i++){
if(flag == 0){
minPos = i;
for(int j = i+1; j < n; j++){
if(arr[j] < arr[minPos]){
minPos = j;
}
}
if(i != maxPos){
temp = arr[minPos];
arr[minPos] = arr[i];
arr[i] = temp;
}
}
else if(flag == 1){
maxPos = i;
for(int j = i+1; j < n; j++){
if(arr[j] > arr[maxPos]){
maxPos = j;
}
}
if( i != maxPos ){
temp = arr[maxPos];
arr[maxPos] = arr[i];
arr[i] = temp;
}
}
}
for(int i = 0; i < n; i++){
cout << arr[i] << " ";
}
}