#include<stdio.h>
#include<stdlib.h>
typedef struct node{
    int data;
    struct node *prev;
    struct node *next;
}Node;
Node *head = NULL,*tail;
void create(int num){
    Node *newnode = (Node*)malloc(1 * sizeof(Node));
    newnode->data = num;
    newnode->next = NULL;
    newnode->prev = NULL;
    if(head==NULL){
        head=newnode;
        tail=newnode;
    }
    else{
        tail->next=newnode;
        newnode->prev=tail;
        tail=newnode;
    }
}
void deleteval(int val){
    Node *curr = head;
    while(curr!=NULL){
        if(curr->data==val){
            if(curr==head){
            head = curr->next;
            if(head!=NULL){
                head->prev = NULL;
            }
            else{
                tail = NULL;
            }
        }else if(curr==tail){
            tail = curr->prev;
            tail->next = NULL;
        }else{
            curr->prev->next = curr->next;
            curr->next->prev = curr->prev;
        }
        free(curr);
        return 1;
    }
    curr = curr->next;
    }
    return 0;
}
void display(){
    struct node *itr;
    for(itr=head; itr!=NULL; itr =itr->next){
        printf("%d ",itr->data);
    }
}
int main(){
    int size,num,itr,val;
    scanf("%d",&size);
    if(size<=0){
        printf("Node not found");
        return 0;
    }
    for(itr=1; itr<=size; itr++){
        scanf("%d",&num);
        create(num);
    }
    scanf("%d",&val);
    deleteval(val);
    display();
    return 0;
}