#include <stdio.h>
#define N 100000

int Partition(int *,int ,int );

main(){

  int i,n,a[N],p=0,v,j;

  scanf("%d",&n);

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

 v=Partition(a,p,n);
 
 for(i=0; i<v; i++)
   printf("%d ",a[i]);

 printf("[%d] ",a[v]);

 for(j=v+1; j<n-1; j++)
   printf("%d ",a[j]);

 printf("%d\n",a[j]);


 return 0;
}




  int Partition(int *a,int p,int r){
    int x,i,j,tmp,k;

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

    tmp=a[i+1];
    a[i+1]=a[r-1];
    a[r-1]=tmp;

    return i+1;
  }