// editor2
#include<stdio.h>
#include<stdlib.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;
        
        
    }
    void printList(struct Node* head){
    if(head != NULL){
        printf("Not Found\n");
        return;
    }
    }  
    free(temp);
}
int main(){
    struct Node* head =NULL;
    int n,roll,rollTodelete;
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        scanf("%d",&roll);
        add(&head,roll);
    }
    scanf("%d",&rollTodelete);
    deleteNode(&head,rollTodelete);
    printList(head);
     return 0;
    }