#include<stdio.h>
#define MAX 100000
int A[MAX],n,a;
int Partition(int p,int r){
    int c,x,i,j;
    x=A[r];
    i=p-1;
    for(j=p;j<r;j++){
        if(A[j]<=x){
            i=i+1;
            c=A[i];
            A[i]=A[j];
            A[j]=c;
        }
    }
    c=A[i+1];
    A[i+1]=A[r];
    A[r]=c;
return i+1;
}
void Showdata(int n){
int i;
for(i=0;i<n;i++){
   if(i==a){
       printf("[");
   }
   if(i!=n-1){
       printf("%d ",A[i]);
       }
       else printf("%d",A[i]);
   if(i==a){
       printf("]");
   }
}
printf("\n");
}
int main(){
    int i;
    scanf("%d",&n);
    for(i=0;i<n;i++){
        scanf("%d",&A[i]);
    }
    a=Partition(0,n-1);
    Showdata(n);
    return 0;
}
