#include <stdio.h>
#define MAX 100000

int A[MAX];

int partition(int p,int r){
int x = A[r];
int i=p-1;
int j,store;
for(j=p;j<r;j++){
if(A[j]<=x){
i+=1;
store = A[i];
A[i] = A[j];
A[J] = store;
}
}
store = A[i+1];
A[i+1] = A[r];
A[r] = store;
return i+1;
}
int main(){
int n,i;
int prt;
scanf("%d",&n);

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

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