#include<stdio.h>

int part(int A[],int p,int r){
int i,j;
int temp;

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

return i+1;
}





int main(){
int i;
int n;
int A[100001];
int index;

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

for(i=0;i<n;i++){
 if(i==index){printf("[%d] ",A[i]);}
 else if(i==n-1){printf("%d",A[i]);}
 else{printf("%d ",A[i]);}
}

return 0;
}