// editor2
#include<stdio.h>
#include<stdlib.h>

typedef struct node
{int data;
struct node *right,*left;

    
}node;
node *root=NULL,*newnode;


node*create(int num)
{
    newnode=(node*)malloc(sizeof(node));
    newnode->data=num;
    newnode->right=NULL;
    newnode->left=NULL;
    return newnode;
}
node* insert(node* root,int num)
{
    if(root==NULL)
    {
        return create(num);
    }
    if(root->data <num)
    {
         root->right=insert(root->right);
    }
    else if(num <root->data)
    {
        root->left=insert(root->left,num);
    }
    return root;
}

void newinsert(node* root,int num)
{if(root!=NULL)
{
    if(num<root->data)
    {
        root->left=newinsert(root->left,num);
    }
    else if(num >root->data)
    {
        root->right=newinsert(root->right);
    }
    return root;
}

    
}
void inorder(node* root)
{
    inorder(root->left);
    printf("%d ",root->data);
    inorder(root->right);
    
}
int main()
{int size,n,k;
scanf("%d",&size);
scanf("%d",&k);
for(int i=0;i<size;i++)
{
    scanf("%d",&n);
    root=insert(root,n);
}
newinsert(root,k);
inorder(root);
}