#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
typedef struct Node{
    int key;
    struct Node*left,*right;
}Node;

Node*newNode(int key){
    Node*node=(Node*)malloc(sizeof(Node));
    node->key=key;
    node->left=node->right=NULL;
    return node;
}
Node* insert(Node*root, int key){
    if(!root)return newNode(key);
    if(key<root->key)root->left=insert(root->left,key);
    else if(key>root->key)root->right=insert(root->right,key);
    return root;
}
Node*deleteNode(Node*root, int key){
    if(!root)return root;
    if(key<root->key)root->left=deleteNode(root->left,key);
    else if(key>root->key)root->right=deleteNode(root->right,key);
    else{
        if(!root->left){
            Node*temp=root->right;
            free(root);
            return temp;
        }else if(!root->right){
            Node*temp=root->left;
            free(root);
            return temp;
        }
        Node*temp=min(root->right);
        root->key=temp->key;
        root->right=deleteNode(root->right,temp->key);
    }
    return root;
}
Node*min(Node*root){
    Node*curr=root;
    while(curr&&curr->left)curr=curr->left;
    return curr;
}
void preorder(struct Node*root){
    if(!root)return;
    printf("%d ",root->key);
    preorder(root->left);
    preorder(root->right);
}
int main(){
    int n,x;
    if(scanf("%d %d",&n,&x)!=2||n<=0||n>20||x<0){
        printf("Invalid input\n");
        return 0;
    }
    int prodID,ids[20];
    for(int i=0;i<n;i++){
        if(scanf("%d",&prodID)!=1||prodID<0||prodID>1000){
            printf("Invalid input");
            return 0;
        }
        ids[i]=prodID;
    }
    Node*root=NULL;
    for(int i=0;i<n;++i)root=insert(root,ids[i]);
    root=deleteNode(root,x);
    preorder(root);
    return 0;
    
}