#include<stdio.h>
#include<stdlib.h>
#define N 1000000

int partiton(int *,int,int);

main(){

  int n,r,p,i,q;
  int A[N];

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

  r=n-1;
  p=0;

  if(p < r){
   q = partiton(A, p, r);
  }
  for( i=0 ; i<n ; i++){
    if(i == q) printf("[%d]",A[i]);
    else printf("%d",A[i]);
    if( i!= n-1)printf(" ");
  }
  printf("\n");

  return 0;
}


int partiton(int *A,int p,int r){

  int x,i,j,n,m;

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