#include<stdio.h>
#define MAX 100000
int A[MAX],n;

int partition(int p, int r) {
  int x = A[r];
  int i = p-1,j,temp;
  for(j=p;j<r;j++) {
    if(A[j] <= x) {
      i++;
      temp = A[i];
      A[i] = A[j];
      A[j] = temp;
    }
  }
    temp = A[i+1];
    A[i+1] = A[r];
    A[r] = temp;
  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;
}