#include <stdio.h>
#include <stdlib.h>
#define MAX 100001
int partition(int *,int ,int);

int main() {
  int A[MAX],n,i,q,x;

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

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

  return 0;
}

int partition(int *A,int p,int r) {
  int x,i,j,tmp;
  x = A[r];
  i = p-1;
  for(j = p;j < r;j++) {
    if(A[j] <= x) {
      i = i+1;
      tmp = A[i]; 
      A[i] = A[j];
      A[j] = tmp;
    }
  }
    tmp = A[i+1];
    A[i+1] = A[r];
    A[r] = tmp;
	  
  return i+1;
     }