#include <stdio.h>
#include <stdlib.h>

int partation(int *,int,int);
void swap(int *, int *);

int *A,*x;
int main(){
  int n,i,j,r,a;

  scanf("%d",&n);
  A=malloc(sizeof(int)*n+1);
  for(i=1;i<=n;i++) scanf("%d",&A[i]);

 
  a=partation(A,0,n);
  
  for(j=1;j<=n;j++){
    if(j==a) printf("[%d]",A[j]);
    else  printf("%d",A[j]);
    if(j!=n) printf(" ");
  }
  printf("\n");
  
}

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

void swap(int *x,int *y){
  int tmp;
  tmp=*x;
  *x=*y;
  *y=tmp;
}

