#include<stdio.h>
int Partition(int[],int,int);

int main(){
  int n,i,j,A[100000];

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

  j=Partition(A,0,n-1);
  
  for(i=0; i<n; i++){
    if(i != 0)
      printf(" ");
    if(i==j)
      printf("[%d]",A[i]);
    else
      printf("%d",A[i]);
  }
  printf("\n");
  return 0;
}
  
int Partition(int B[],int p,int r){
  int temp,a,b,c;
  a=B[r];
  b=p-1;
  for(c=p; c<r; c++){
    if(B[c] <= a){
      b++;
      temp= B[c];
      B[c]= B[b];
      B[b]= temp;
    }
  }
  temp= B[r];
  B[r]= B[b+1];
  B[b+1]= temp;
  
  return b+1;
}