#include <stdio.h>
#include <stdlib.h>
#define N 100000

int partition(int *,int,int);

int i,j,A[N];

int main(){
  int n,P;

  scanf("%d",&n);


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

 P=partition(A,0,n-1);

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

   return 0;
}

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

    return i+1;
}