#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#define rad M_PI/3
#define N 200001
#define Max 10000

void swap(int *a,int *b){
    int tmp =*a;
    *a=*b;
    *b=tmp;
}
int partition(int *A,int p, int r){
    int x = A[r];
    int i = p;
    for(int j=p;j<r;j++){
        if(A[j]<=x){
            swap(&A[i++],&A[j]);
        }
    }
    swap(&A[i],&A[r]);
    for(int j=p;j<=r;j++){
        if(j>p) {
            printf(" ");
        }
        if(j==i){
            printf("[%d]",A[j]);
        }else{
            printf("%d",A[j]);
        }
    }
    printf("\n");
}
int main()
{
    int n;
    int A[N];
    int p=0;
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        scanf("%d",&A[i]);
    }
    partition(A,p,n-1);

  return 0;
}
