#include<stdio.h>

int Partition(int A[], int p, int r){
  int x = A[r], i = p-1, j;
  int sw;

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

  return i+1;
}

int main(void){
  int m,n,i;

  scanf("%d", &n);

  int A[n];

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

  for(i = 0 ; i < m ; i++){
    printf("%d ", A[i]);
  }
  printf("[%d]", A[m]);

  for(i = m+1 ; i < n ;i++){
    printf(" %d", A[i]);
  }
  printf("\n");

  return 0;
}

