#include<stdio.h>

 int partion(int A[],int p,int r){
      int i,j,tmp,x;
      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;
      }

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

      x=partion(A,0,n-1);

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


      
