#include<stdio.h>
??
#define N 100000
??
int A[N],n;
??
int partition(int p,int r){
????int x,i,j,tmp;
????x=A[r];
????i=p-1;
????for(j=p;j<r;j++){
????????if(A[j] <= x){
????????????i++;
????????????tmp=A[i]; A[i]=A[j]; A[j]=tmp;
????????}
????}
????tmp=A[i+1]; A[i+1]=A[r]; A[r]=tmp;
????return i+1;
}
??
int main(void){
??
????int i,p;
??????
????scanf("%d",&n);
????for(i=0;i<n;i++) scanf("%d",&A[i]);
????p=partition(0,n-1);
??
????for(i=0;i<n;i++){
????????if(i) printf(" ");
????????if(i==p) printf("[%d]",A[i]);
????????else printf("%d",A[i]);
????}
????printf("\n");
??????
????return 0;
}