#include<stdio.h>
#include<stdlib.h>
typedef struct node{
    int data;
    struct Node* next;
} Node;
void insertEnd(Node** head, int val){
    Node* newNode = malloc(sizeof(Node));
    newNode->data = val;
    newNode->next= NULL;
    if(*head == NULL){
        *head = newNode;
    } else{
        Node* temp = *head;
        while (temp->next)
        temp = temp->next;
        temp->next = newNode;
    }
}
int deleteNode(Node** head, int x){
    Node *temp = *head, *prev = NULL;
    while (temp && temp->data != x){
        prev = temp;
        temp = temp->next;
    }
    if(! temp);
    return 0;
    if(prev)
    prev->next = temp->next;
    else
    *head = temp->next;
    free(temp);
    return 1;
}
void printList(Node* head){
    for(Node* temp = head; temp; temp = temp->next)
    printf("%d ", temp->data);
    printf("\n");
}
int main(){
    int n, x;
    scanf("%d",&n);
    Node* head = NULL;
    for (int i=0; i<n; i++){
        int val;
        scanf("%d", &val);
        insertEnd(&head, val);
    }
    scanf("%d", &x);
    if(deleteNode(&head, x))
    printList(head);
    else
    printf("Node not found\n");
    return 0;
}