#include<stdio.h>
#define N 100000
 
int A[N + 1];
 
int Partition(int p, int r){
  int x, i, j, arr;
  x = A[r];
  i = p - 1;
  for(j = p; j < r; j++){
    if(A[j] <= x){
      i++;
      arr = A[i];
      A[i] = A[j];
      A[j] = arr;
    }
  }
  arr = A[i + 1];
  A[i + 1] = A[r];
  A[r] = arr;
 
  return i + 1;
}
 
 
main(){
  int i, r, q, p = 0;
   
  scanf("%d", &r);
  for(i = 0; i < r; i++){
    scanf("%d", &A[i]);
  }
   
  q = Partition(p, r - 1);
  for(i = 0; i < r; i++){
    if(i == q){
      printf("[%d]", A[i]);
    } else {
      printf("%d", A[i]);
    }
 
    if(i != r - 1){
     printf(" ");
    }
  }
  printf("\n");
  return 0;
}

 
	   	
 