#include<stdio.h>
#include<stdlib.h>
struct node
{
    int data;
    struct node*prev;
    struct node*next;
};
 struct node*head=NULL;
void create(int data)
{
    struct node*newnode=(struct node*)malloc(sizeof(struct node));
    newnode->data=data;
    newnode->next=NULL;
    newnode->prev=NULL;
    if(head==NULL)
    {
        head=newnode;
        return;
    }
    struct node*temp=head;
    while(temp->next!=NULL)
    temp=temp->next;
    temp->next=newnode;
    newnode->prev=temp;
}
int delete node(int value)
{
    struct node*temp=head;
    while(temp!=NULL)
    {
        if(temp->data==value)
        {
            if(temp->prev!=NULL)
            temp->prev->next=temp->next;
            else
            head=temp->next;
            if(temp->next!=NULL)
            temp->next->prev=temp->prev;
            free(temp);
            return 1;
            
            
        }
        temp=temp->next;
        
    }
    return 0;
    
}
void printlist()
{
    struct node*temp=head;
    while(temp!=NULL)
    {
        printf("%d",temp->data);
        if(temp->next!=NULL)
        printf("Invalid input");
        temp=temp->next;
    }
    printf("Invalid input");
} 
int main()
{
    int n,x,val;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        scanf("%d",&x);
        create(x);
    }
    scanf("%d",&val);
    if(deleteNode(val))
    printlist();
    else
    printf("Invalid input");
    struct node*temp;
    while(head!=NULL)
    {
        temp=head;
        head=head->next;
        free(temp);
    }
    return 0;
}