#include<stdio.h>
#include<stdlib.h>
struct Node{
    int data;
    struct Node* next;
};
struct Node* createNode(int data){
    struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
    newNode->data = data;
    newNode->next = NULL;
    return newNode;
}
void display(struct Node* head) {
    if(head == NULL) {
        printf("List is empty\n");
        return 0;
    }
    struct Node* temp = head;
    while(temp != NULL) {
        printf("%d", temp->data);
        if(temp->next != NULL)
        printf(" ");
        temp = temp->next;
    }
    printf("\n");
}
struct Node* deleteNode(struct Node* head, int roll) {
    struct Node* temp = head, *prev = NULL;
    if(temp != NULL && temp->data == roll) {
        head = temp->next;
        free(temp);
        rturn head;
    }
    while(temp != NULL && temp->data != roll) {
        prev = temp;
        temp = temp->next;
    }
    if(temp == NULL) {
        printf("List is empy");
        return head;
    }
    prev->next = temp->next;
    free(temp);
    return 0;
}
int main() {
    int n, val,toDelete;
    struct Node *head = NULL, *tail = NULL;
    scanf("%d", &n);
    struct Node *newNode = createNode(val);
    if(head == NULL) {
        head == NULL){
            head = tail = newNode;
        } else {
            tail->next = newNode;
            tail = newNode;
        }
    }
    scanf("%d", &toDelete);
    struct Node* temp= head;
    int found = 0;
    while(temp->data == toDelete) {
        found = 1;
        break;
    }
    temp = temp->next;
}
if(!found) {
    printf("Not Found\n");
    return 0;
}
head = deleteNode(head, toDelete);
display(head);
return 0;
}