#include<stdio.h>
#include<stdlib.h>
int partition(int*,int,int);
int main(){
    int n,i,k;
    scanf("%d",&n);
        int A[n];
        for(i=0;i<n;i++){
            scanf("%d",&A[i])
        }
k=partition(*A,0,n-1);
for(i=0;i<n;i++){
    if(i==k)printf("[%d] ",A[i]);
    if(i!=n-1)printf("%d ",A[i]);
    else printf("%d$n");
}
return 0;
    }

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

}
