#include <stdio.h>
#include <stdlib.h>
typedef struct treenode{
    int data;
    struct treenode*left;
    struct treenode*right;
    
}node;
node*root=NULL;
      node*create (int num){
          node*newnode=(node*)malloc(sizeof(node));
          newnode->data=num;
          newnode->left=newnode->right=NULL;
          return newnode;
      }
      node*insertBST(node*root,int num){
          if(root==NULL)
             return create(num);
          if(num<root->data)
             root->left=insertBST(root->left,num);
          else
            root->right=insertBST(root->right,num);
      }
            return root;
      void sortedorder (node*root){
          if(root!=NULL)
             sorted(root->left);
             printf("%d",root->data);
             sortedorder(root->right);
      }
      Node*insertBST(root,val);
         sorted order(root);
         return 0;
    
}
int main(){
    int size,val,num,i;
    Node*root=NULL;
    scanf("%d",&size);
    scanf("%d",&val);
    for(i=0;i<size;i++){
        scanf("%d",&num);
        root=insert BST(root,num);
    }
    node*insertBST(root,val);
       sortedorder(root);
       return 0;
}