#include <stdio.h>
#include <stdlib.h>
#define Max 100000

int partition(int A[], 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[j]=t;
     return i+1;
}





int main()
{
    int A[Max];
    int n;
    int i;
    int j=0;
    int p;
    scanf("%d", &n);
    for(i=0;i<n;i++)
    {
        scanf("%d", &A[i]);
       
    }
    
    p=partition(A,0,n-1);

    
     
    for (int j=0; j != n; j++) 
    {
        if (j==p){printf("[%d] ", A[j]);j++;}
        if (j==n-1)printf("%d\n", A[j]);

        else printf("%d ", A[j]);
      

    }
    return 0;
    
}
