#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;
}
