#include <stdio.h>

int n,A[100000];
int partition(int,int);

int main(){
    int i,p;
    scanf("%d",&n);
    for(i = 0 ; i < n ; i++){
        scanf("%d",&A[i]);
    }
    p = partition(0,n-1);
    for(i = 0 ; i < n ; i++){
        if(i == p) printf("[");
        printf("%d",A[i]);
        if(i == p) printf("]");
        if(i!=n-1) printf(" ");
    }
    printf("\n");
}

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

