#include<stdio.h>
#define MAX 100000

int A[MAX], n;

void swap(int x, int y){
    int v;
    v=A[x];
    A[x]=A[y];
    A[y]=v;
}


int partition(int p, int r){
    int x, i, j;
    x=A[r];
    i=p-1;
    for(j=p;j<r;j++){
        if(A[j]<=x){
            i++;
            swap(i,j);
        }
    }
    swap(i+1,r);
    return i+1;
}

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

    for(i=0; i < n; i++){
        if(i) printf(" ");
        if(i==q) printf("[");
        printf("%d",A[i]);
        if(i==q) printf("]");
    }
    printf("\n");

    return 0;
}
