#include<stdio.h>

int main()
{
    int n = 0;
    scanf("%d", &n);//输入原数列中元素总数
    int a[51] = {0};
    for (int i = 0; i < n; i++)
    {
        scanf("%d", &a[i]);//输入原数列中的元素
    }
    int x = 0;
    scanf("%d", &x);//输入要插入的数
    int temp = 0;
    for (int i = 0; i < n - 1; i++)//冒泡排序  从小到大
    {
        for (int j = 0; j < n - 1 - i; j++)
        {
            if (a[j] > a[j + 1])
            {
                temp = a[j];
                a[j] = a[j + 1];
                a[j + 1] = temp;
            }
        }
    }
    for (int i = 0; i < n; i++)//寻找排列完毕后的数列中第一个比x大的数,从这个数到最
    {                            //后一个数依次往后挪一位,x插入原本第一个比x大的数的位置
        if (x < a[i])
        {
            for (int j = n - 1; j >= i; j--)
            {
                a[j + 1] = a[j];
            }
            a[i] = x;
            break;
        }
    }
    if (x > a[n - 1])//如果数列中没有比x大的元素,直接把x放到最后元素的后面
    {
        a[n] = x;
    }
    for (int i = 0; i < n + 1; i++)
    {
        printf("%d ", a[i]);
    }
    return 0;
}