#include<stdio.h>

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

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