#include <stdio.h>
//不定义N+1的数组,直接比较,按顺序打印,若比插入的值小,先打印,否则打印插入的值
int main() {
    int N;
    int i=0;
    int num=0;
    int j=0;          //打印插入值的标志
    scanf("%d",&N);
    int arr[N];
    for (i=0;i<N;i++)
    {
     scanf("%d",&arr[i]);     //先存原来的有序序列
    }
    scanf("%d",&num);         //输入一个需要插入的值
     for (i=0;i<N; i++) 
     {
        if (arr[i]<num) 
        {
            printf("%d ",arr[i]);   //如果数组内的值小,就打印
        }
        else if (arr[i]>num) 
        {
            printf("%d ",num);      //如果插入的值小,就打印,并定义一个已经打印的标志
            j=1;
            break;                //打印插入值之后,跳出循环,否则会一直打印插入值
        }
     }
     for (; i<N; i++)                 //循环打印有序数组的剩余值
     {
          printf("%d ",arr[i]);
     }
     if (j==0)                        //观测标志,若没打印,说明插入的值比原来数组内的都大,补打印一个要插入的值
     {
            printf("%d ",num);
     }
    return 0;
}