#include <stdbool.h>
#include <stdio.h>
int cmp_swap(int *a,int *b,int mode);
int main() {
    int arry[1000];
    int n=0;
    int mode = 0;
    int flg = 0;
    scanf("%d",&n);
    for ( int i=0; i<n; i++) 
    {
        scanf("%d",&arry[i]);
    }
    scanf("%d",&mode);
    for (int i=0; i<n-1; i++) 
    {
        flg = 0;
        for(int j=0;j<n-1-i;j++)
        {
            flg+=cmp_swap(&arry[j],&arry[j+1],mode);//冒泡排序法进行比较
        }
        if (flg==0) 
        {
            break;
        }
    }
    for(int i=0;i<n;i++)
    {
        printf("%d ",arry[i]);
    }
    return 0;
}
//单独建立一个比较并交换的函数,可变比较方向
int cmp_swap(int *a,int *b,int mode)
{
    int tmp = 0;
    bool jugT = 0;
    if(mode)
    {
        jugT = *a<*b;
    }
    else 
    {
        jugT = *a>*b;
    }
    if (jugT) 
    {
        tmp = *a;
        *a = *b;
        *b = tmp;
        return  1;
    }
    else 
    {
        return  0;
    }
}