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




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

  scanf("%d",&n);
  A=malloc(n*sizeof(int));
  for(i=0;i<n;i++) scanf("%d",&A[i]);//読み込み完了

  int x=A[n-1];
  int swap;
  j=-1;
  for(i=0;i<n;i++){
    if(A[i]<=x){
      j+=1;
      swap=A[i];
      A[i]=A[j];
      A[j]=swap;
    }//ピボット以下のものと、ピボットより大きいものに分ける。
  }
  
  for(i=0;i<j;i++) printf("%d ",A[i]);
  printf("[%d]",A[j]);
  for(i=j+1;i<n;i++) printf(" %d",A[i]);
  printf("\n");
  return 0;
}
    
