#include <stdio.h>

#define MAX 10000

void swap(int* a,int* b)
{
    int temp = *a;
    *a = *b;
    *b = temp;
}

void Partirion(int l,int r,int* A)
{
    int x = A[r];
    int i = l, j;
    
    for(j = l; j < r; j++)
    {
        if (A[j] <= x) swap(&A[i++],&A[j]);
    }
    swap(&A[i],&A[j]);
    
    for(j = 0;  j <= r; j++)
    {
        if(j != 0) printf(" ");
        if(j == i) printf("[%d]",A[j]);
        else printf("%d",A[j]);
    }
    printf("\n");
} 

int  main(void){
    int n,i,A[MAX];
    
    scanf("%d",&n);
    for(i = 0 ; i < n ; i++) scanf("%d",&A[i]);
    
    Partirion(0,n-1,A);
    return 0;
}

