#include <stdio.h>
#include <stdlib.h>
typedef struct Node{
    int data;
    struct Node*next;
}Node;
Node* createNode(int data){
    Node* newNode=(Node*)malloc(sizeof(Node));
    if(!newNode){
        printf("Memory error\n");
        return NULL;
    }
    newNode->data=data;
    newNode->next=NULL;
    return newNode;
}
void insertNode(Node**head,int data){
    Node*newNode=createNode(data);
    if(*head==NULL){
        *head=newNode;
        return;
    }
    Node*last=*head;
    while(last->next){
        last=last->next;
    }
    last->next=newNode;
}
int deleteNode(Node**head,int rollNumber){
    if(*head==NULL){
        return 0;
    }
    if((*head)->data==rollNumber){
        Node*tenp=*head;
        *head=(*head)->next;
        free(temp);
        return 1;
    }
    Node*current=*head;
    while(current->next){
        if(current->next->data==rollNumber){
            Node*temp=current->next;
            current->next=current->next->next;
            free(temp);
            return 1;
        }
        current=current->next;
    }
    return 0;
}
void printList(Node*head){
    if(head==NULL){
        printf("List is empty\n");
        return;
    }
    Node*current=head;
    while(current){
        printf("%d ",current->data);
        current=current->next;
    }
    printf("\n");
}
int main(){
    int n;
    scanf("%d",&n);
    Node*head=NULL;
    for(int i=0;i<n;i++){
        int rollNumber;
        scanf("%d",&rollNumber);
        insertNode(&head,rollNumber);
    }
    int rollToDelete;
    scanf("%d",&rollToDelete);
    if(deleteNode(&head,rollToDelete)){
        printList(head);
    }else{
        printf("Not Found\n");
    }
    Node*current=head;
    while(current){
        Node*next=current->next;
        free(current);
        current=next;
        
    }
    return 0;
    
}