#include<iostream>
using namespace std;

int partition(int n,int A[]){
    int x=A[n-1];//基準
    int p=0,i=p-1;
    for(int j=0;j<n;j++){
        if(A[j]<=x){//A[j]の方が大きいならそのまま
        int tmp=A[j];
        A[j]=A[++i];
        A[i]=tmp;
        if(j==n-1)return i;
        }
    }
    return n-1;//[]で括るために取り出さないと。
}

int main(){
    int n;cin>>n;int A[n];for(int i=0;i<n;i++)cin>>A[i];
    int x=partition(n,A);
    for(int j=0;j<n;j++){
        if(j)cout<<' ';
        if(j==x)cout<<'['<<A[j]<<']';
        else{cout<<A[j];}
    }
    cout<<endl;
    return 0;
}
