#include <stdio.h>
#include<stdlib.h>
typedef struct node
{
    int data;
    struct Node*next;
}Node;
struct Node*CreateNode(int data)
{
    Node*newnode=(Node*)malloc(sizeof(Node));
    newnode -> data = data;
    newnode -> next= NULL;
    return newnode;
} 
void deleteLast(struct Node**head,int K)
{
    int len=0;
    struct Node*temp=*head;
    while(temp!=NULL)
    {
        len++;
        temp=temp->next;
    }
    if(K>len)
    {
        printf("Invalid input\n");
        return;
    }
    if(K==len)
    {
        printf("List is Empty\n");
        return;
    }
    int stop=len-K;
    temp=*head;
    for(int i=1;i<stop;i++)
    {
        temp=temp->next;
    }
    struct Node*del=temp->next;
    temp->next=NULL;
    while(del!=NULL)
    {
        struct Node*t=del;
        del=del->next;
        free(t);
    }
    temp=*head;
    while(temp!=NULL)
    {
        printf("%d",temp->data);
        if(temp->next!=NULL)
        printf("");
        temp=temp->next;
    }
    printf("\n");
}
int main()
{
    int n;
    scanf("%d",&n);
    struct Node*head=NULL;
    struct Node*tail=NULL;
    for(int i=0;i<n;i++)
    {
        int id;
        scanf("%d",&id);
        struct Node*newNode=createNode(id);
        if(head==NULL)
        {
            head=newNode;
            tail=newNode;
        }
        else
        {
            tail->next=newNode;
            tail=newNode;
        }
    }
    int K;
    scanf("%d",&K);
    if(head->next==NULL&&K==1)
    {
        printf("List is empty\n");
        return 0;
    }
    deleteLast(&head,K);
    struct Node*temp=head;
    while(temp!=NULL)
    {
        struct Node*t=temp;
        temp=temp->next;
        free(t);
    }
    return 0;
}