#include <stdio.h>
#define MAX 100001
int partition(int*, int, int);




int main(){
        int n, i, P;
        int A[MAX];

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

        P = partition(A, 0, n-1);

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


int partition(int *A, int p, int r){
        int x, i, j;
        int tmp = 0;

        x = A[r];
        i = p-1;

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

                        tmp = A[j];
                        A[j] = A[i];
                        A[i] = tmp;
                }
        }
        tmp = A[i+1];
        A[i+1] = A[r];
        A[r] = tmp;
        return i+1;
}