#include<stdio.h>

#define N 100000

int Partition(int A[],int p,int r);


int main(){
    int i,n,A[N],q;
    
    scanf("%d",&n);
    for(i=0; i<n; i++) scanf("%d",&A[i]);
    
    q = Partition(A,0,n-1);
    
    for(i=0; i<n; i++){
        if(i==q) printf("[%d] ",A[i]);
        else if(i==n-1) printf("%d\n",A[i]);
        else printf("%d ",A[i]);
    }
    
    return 0;
}


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