#include <stdio.h>
#define N 10000

int A[N];
int partition(int,int);
int main(){
    int n,p,i;
    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(p==i){
            printf("[");
        }
    printf("%d",A[i]);

    if(p==i){
            printf("]");
        }
    if(i!=n-1){
			printf(" ");
		}
    }
        printf("\n");

        return 0;
}


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