#include <stdio.h>
#define MAX 100000
int Partition(int[],int,int);
int Partition(int A[],int p,int r){
        int x=A[r];
        int i=p-1,j,k;
        for(j=p; j<r; j++) {
                if(A[j]<=x) {
                        i++;
                        k=A[i];
                        A[i]=A[j];
                        A[j]=k;

                }
        }
        k=A[i+1];
        A[i+1]=A[r];
        A[r]=k;
        return i+1;
}
int main(){
        int A[MAX];
        int n,i,q;
        scanf("%d",&n);
        for(i=0; i<n; i++) {
                scanf("%d",&A[i]);
        }
        q=Partition(A,0,n-1);
        for(i=0; i<n; i++) {
                if(i) printf(" ");
                if(i==q) {
                        printf("[");

                }
                printf("%d",A[i]);
                if(i==q) {

                        printf("]");
                }

        }
        printf("\n");
        return 0;
}

