#include<stdio.h>
#include<stdlib.h>

typedef struct Node {
    int rollNumber;
    struct Node* next;
} Node;

Node* createNode(int rollNumber) {
    Node* newNode = (Node*)malloc(sizeof(Node));
    newNode->rollNumber = rollNumber;
    newNode->next = NULL;
    return newNode;
}

void addStudent(Node** head, int rollNumber){
    Node* newNode=createNode(rollNumber);
    if(*head==NULL){
        *head=newNode;
    }else{
        Node* temp=*head;
        while(temp->next != NULL){
            temp=temp->next;
        }
        temp->next=newNode;
    }
}

void removeStudent(Node** head, int rollNuber){
    if(*head==NULL)return;
    
    if((head*)->rollNumber==rollNumber){
        Node* temp=*head;
        *head=(*head)->next;
        free(temp);
        return;
    }
    Node* temp=*head;
    while(temp->next != NULL){
        if (temp->next->rollNumber==rollNumber){
            Node* nodeToRemove=temp->next->next;
            free(nodeToRemove);
            return;
        }
        temp=temp->next;
    }
}
void printList(Node* head){
    if(head==NULL){
        printf("List is empty\n");
        return;
    }
    
    while(head==NULL){
        printf("%d ",head->rollNumber);
        head=head->next;
    }
    print("\n");
}
int main(){
    int n;
    scanf("%d", &n);
    
    Node* head=NULL;
    for(int i=0;i<n;i++){
        int rollNumber;
        scanf("%d",&rollNumber);
        addStudent(&head,rollNumber);
    }
    int m;
    scanf("%d",&m);
    for(int i=0;i<m;i++){
        int rollNumber;
        scanf("%d",&rollNumber);
        removeStudent(&head,rollNumber);
    }
    printList(head);
    
    Node* temp;
    while(head != NULL){
        temp=head;
        head=head->next;
        free(temp);
    }
    return 0;
}