#include <stdio.h>
#include <stdlib.h>
struct Node{
    int roll;
    struct Node* next;
}


struct Node* createNode(int roll) {
    struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
    newNode -> roll = roll;
    newNode -> next = NULL;
    return newNode;
}


void insert(struct Node **head, int roll){
    struct Node* newNode = createNode(roll);
    
    if(*head == NULL) {
        *head = newNode;
        return;
    }
    
    struct Node* temp = *head;
    while(temp -> next != head) {
        temp = temp -> next;
    }
    temp -> next = newNode;
}


void deleteVal(struct Node **head, int toDel){
    struct Node *temp = *head, *prev = NULL;
    
    if(temp == NULL) {
        printf("List is empty");
        return;
    }
    
    if(temp != NULL && temp -> roll == toDel) {
        *head = temp -> next;
        free(temp);
        return;
    }
    
    while(temp != NULL && temp -> roll != toDel) {
        prev = temp;
        temp = temp -> next;
    }
    
    if(temp == NULL) {
        printf("Not Found");
        return;
    }
    
    prev -> next = temp -> next;
    free(temp);
    
}



void printList(struct Node* head) {
    if(head == NULL) {
        printf("List is empty");
        return;
    }
    
    struct Node* temp = head;
    while(temp != NULL) {
        printf("%d ", temp -> roll);
        temp = temp->next;
    }
    
}




int main() {
    
    int n, roll, toDel;
    struct Node* head = NULL;
    scanf("%d", &n);
    
    for (int i = 0; i < n; i++) {
        scanf("%d ", &roll);
        insert(&head, roll);
    }
    
    scanf("%d ", &toDel);
    
    deleteVal(&head, toDel);
    printList(head);
  
    return 0;
}