// editor2
#include<stdio.h>
#include<stdlib.h>
int display();
int create(int value);
int del(int value);
typedef struct node{
    int data;
    struct node *next;
}node;
node *tail=NULL,*head=NULL,*newnode=NULL;
int main()
{
    int n,i,value,val;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&value);
        create(value);
    }
    scanf("%d",&val);
    del(val);
    display(n);
    return 0;
}
int create(int value)
{
    newnode=(node*)malloc(sizeof(node));
    newnode->next=NULL;
     newnode->data=value;
      if(head==NULL)
      {
          head=newnode;
          tail=newnode;
      }
      else{
          tail->next=newnode;
          tail=newnode;
      }
}
int display(int n)

{int n1=0;
for(tem=head;tem!=NULL;tem=tem->next)
    {
       n1++;
    }
    if(n==n1)
    {
         printf("Node not found");
         return 0;
    }
    node *tem;
    for(tem=head;tem!=NULL;tem=tem->next)
    {
        printf("%d ",tem->data);
    }
}

int del(int value)
{  node *tem,*tem1;int c=0;
    if(head->data == value)
    {
      tem=head;
      head=head->next;
      free(tem);
      c++;
     }
     else
     {
        for(tem=head->next;tem->data != value;tem=tem->next)
        {
         tem1=tem;
         
        }
       if(tem->data == value)
         {
             c++;
         }
         if(c==0)
         {
             printf("Node not found");
             return 0;
         }
        
        
     if(tem->next== NULL)
        {
         tail=tem1;
         free(tem);
    
         return 0;
         }
     tem1->next=tem->next;
     free(tem); 
     
     }
   
}