#include<stdio.h>
#include<stdlib.h>
typedef struct Node{
    int data;
    struct Node* next;
}Node;
Node* deleteNodes(Node* head, int max_height){
    Node* temp = head;
    Node* prev = NULL;
    while(temp != NULL && temp->data > mex_height){
        node* toDelete = temp;
        temp = temp->next;
        free(toDelete);
    }
    head = temp;
    while (temp != NULL){
        if(temp->data > max_height){
            prev->next = temp->next;
            free(temp);
            temp = prev->next;
        }else{
            prev = temp;
            temp = temp->next;
        }
    }
    return head;
}
void printList(Node* head){
    if(head == NULL){
        printf("Empty");
        return;
    }
    while(head != NULL){
        printf("%d ",head->data);
        head = head->next;
    }
    printf(" ");
}
int main(){
  int n, max_height;
  scanf("%d", &n);
Node* head = NULL;
node* temp = NULL;
    for(int i = 0; i < n; i++){
        int val;
        scanf("%d", &val);
        Node* newNode = (Node*)malloc(sizeof(Node));
        newNode->data = val;
        newNode->next = NULL;
        if(head == NULL){
            head = newNode;
            temp = head;
        }else{
            temp->next = newNode;
            temp = temp->next;
        }
    }
    scanf("%d", &max_height);
    head = deleteNodes(head, max_height);
    printList(head);
    return 0;
    
}