#include<stdio.h>
int Partition(int*,int, int);
int i, n;

main(){

  int j ,k, A[100000], x;
  
  scanf("%d",&n);

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

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

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

  return 0;
}

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

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