#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct Node{
    int rollNumber;
    struct Node* next;
};
void add(struct Node** head, int rollNumber){
    struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
    if(newNode == NULL){
        printf("Memory allocation failed.\n");
        exit(1);
    }
    newNode->rollNumber = rollNumber;
    newNode->next = NULL;
    if(*head == NULL){
        *head = newNode;
        return;
    }
    struct Node* temp = *head;
    while(temp->next != NULL){
        temp = temp->next;
    }
    temp->next = newNode;
}
void printlist(struct Node* head){
    if(head == NULL){
        printf(" ");
        return;
    }
    struct Node* temp = head;
    while(temp != NULL){
        printf("%d ",temp->rollNumber);
        temp = temp->next;
    }
    printf("\n");
}
void deleteNode(struct Node ** head, int rollTodelete){
    struct Node *temp=*head,*prev = NULL;
    if(temp != NULL && temp->rollNumber == rollTodelete){
        *head=temp->next;
        free(temp);
        return;
    }
    
    while(temp != NULL && temp->rollNumber != rollTodelete){
        prev = temp;
        temp = temp->next;
    }
    if(temp == NULL){
        return;
    }
    if(prev != NULL){
        prev->next = temp->next;
    }
}
int main() {
    struct Node* head = NULL;
    int n,roll,rollTodelete;
    scanf("%d",&n);
    int arr[n];
    for(int i = 0; i<n;i++){
        scanf("%d",&roll);
        add(&head, roll);
        arr[i]=roll;
    }
    scanf("%d",&rollTodelete);
    int found=0;
    for(int i = 0;i<n;i++){
        if(arr[i]==rollTodelete){
            found=1;
        }
    }
    if(found==0){
        printf("Not Found");
        return 0;
    }
    deleteNode(&head,rollTodelete);
    if(head==NULL){
        printf("List is empty");
        return 0;
    }
    printList(head);
    return 0
}