#include <stdio.h>

int partition(int*, int, int);

int main(){
  int i,j,n,A[100000],a;

  scanf("%d",&n);

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

  a = partition(A, i, n);

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

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

  return 0;
}

int partition(int* A,int p,int r){
  int data,suzi,i,henkan;
  
  data = A[r];
  suzi = p-1;
  for (i = p;i<=r-1;i++){
    if (A[i] <= data){
      suzi = suzi+1;
      henkan =A[suzi];
      A[suzi]= A[i];
      
      A[i] = henkan;
    }
  }
      
    henkan =A[suzi+1];
      A[suzi+1]=A[r];

   A[r]=henkan;
 
  return suzi+1;
}

