#include <stdio.h>

int partition(int [], int, int);

int main(){
  int n,a[100000],key;
  int i,j;
  
  scanf("%d",&n);
  for(i=1; i<=n; i++){
    scanf("%d",&a[i]);
  }
  
  key = a[n];
  i = 1;
  partition(a,i,n);
  
  for(i=1; i <= n; i++){
    
    if(a[i] == key){
      printf("[%d]",a[i]);
    }
    else printf("%d",a[i]);

    if((i >= 1) && (i < n))
      printf(" ");
  }
  printf("\n");
  
  return 0;
}

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

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

      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;
}