#include<stdio.h>
#include<stdlib.h>

int partiton(int*,int,int);
void swap(int*,int*);

int main (){
  int n,*Data,i,num;

  scanf("%d",&n);
  
  Data=(int *)malloc(n*sizeof(int));

  for(i=0;i<n;i++){
    scanf("%d",&Data[i]);
  }

  num=partiton(Data,n,0);

for(i=0;i<n;i++){
  if(i==num) printf("[");
    printf("%d",Data[i]);
    if(i==num) printf("]");
    if(i!=n-1) printf(" ");
  }
printf("\n");
}

int partiton(int *Data,int n,int p){
  int mid,i,j;
  mid=Data[n-1];
  i=p-1;

  for(j=p;j<n-1;j++){
    if(Data[j]<=mid){
      i=i+1;
      swap(&Data[i],&Data[j]);
    }
  }
    swap(&Data[i+1],&Data[n-1]);
   return i+1;
}

void swap(int *x,int *y){
  int chage;
  chage=*x;
  *x=*y;
  *y=chage;
}
