#include<stdio.h>
#define N 1000001

int Partition( int A[], int p, int r ){
  int x, i, temp, j;
  x = A[r];
  i = p - 1;
  for( j = p; j < r; 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;
}

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

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