#include <stdio.h>
int partition(int *, int, int);
 
int main(){
    int n, i, p;
    int A[100000];
   
    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==p) printf("]");
        if(i<n-1) printf(" ");
        if(i==p-1) printf("[");
    }
  
    printf("\n");
 
    return 0;
}
 
int partition(int A[],int p,int r){
    int i, j, x, tmp;
   
    x = A[r];
    i = p - 1;
    for(j = p; j < r; j++){
        if(A[j] <= x){
            i = i + 1;
            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;
}