#include <stdio.h>
#define MAX 100000

int A[MAX], n;

int partition(int p, int r){
    int x, i, j, t;
    x = A[r];
    i = p - 1;
    for(j=p; j<r; j++){
        if(A[j]<=x){
            i++;
            t = A[i]; A[i]=A[j]; A[j]=t;
        
        }
    }
    t=A[i+1]; A[i+1]=A[j]; A[r]=t;
    return i+1;
}

int main(){
    int i, q;
    scanf("%d", &n);
    for(i=0; i<n; i++) scanf("%d", &A[i]);
    q=partition(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;
}
