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

int partition(int *, int, int);

int main()
{

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

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

  return 0;
}

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