#include<stdio.h>

#define MAX 100000

int A[MAX],n;

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

   
   int i,q;
   scanf("%d",&n);
  

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


