#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] << " ";
    }
}