#include<stdio.h>

int A[100000];


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

   return i+1;
 }

 int main(){
   int n,i,p,r,q;

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

   p = 0;
   r = n-1;

   q = partition( p, r);

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

   return 0;
   
 }

