#include<stdio.h>
#define N 100000

int patition(int [],int,int);

int A[N];

int main(){

  int i,p=0,q=0,r;

  scanf("%d",&r);
  for(i=0;i<r;i++){
    scanf("%d",&A[i]);
  }
  
  q = partition(A,p,r);
  
  return 0;
}

int partition(int A[],int p,int r){

  int i,j,x=0,s=0;

  x=A[r-1];
  if(p==0){
    i=p;
  }else{
    i=p-1;
  }

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

  s=A[i];
  A[i]=A[r-1];
  A[r-1]=s;

  for(j=0;j<r;j++){
    if(j>0){
      printf(" ");
    }
    if(A[i]==A[j]){
      printf("[%d]",A[j]);
    } else{
      printf("%d",A[j]);
    }
  }
  
  printf("\n");
  return i+1;
}