#include <stdio.h>
#include <stdlib.h>
void swap(int *, int *);
int main(){
  int n;
  scanf("%d", &n);
  int *A;
  A = (int *)malloc(sizeof(int) * n);
  int i;
  for(i = 0; i < n; i++)
    scanf("%d", &A[i]);
  int j;
  for(i = 0, j = 0; i < n - 1; i++)
    if(A[i] < A[n - 1]){
      swap(&A[i], &A[j]);
      j++;
    }
  swap(&A[n - 1], &A[j]);
  for(i = 0; i < j; i++)
    printf("%d ", A[i]);
  printf("[%d] ", A[i]);
  i++;
  for(; i < n - 1; i++)
    printf("%d ", A[i]);
  printf("%d\n", A[i]);
  free(A);
  return 0;
}

void swap(int *a, int *b){
  int tmp;
  tmp = *a;
  *a = *b;
  *b = tmp;
}