#include<iostream>
using namespace std;
int partition(int A[], int p, int r){
	int x=A[r];
	int i=p-1;
	for(int j=p; j<r; j++){
		if(A[j]<=x){
			i++;
			int memo=A[j];
			A[j]=A[i];
			A[i]=memo;
		}
	}
	int memo=A[i+1];
	A[i+1]=A[r];
	A[r]=memo;
	return i+1;
}
int main(){
	int n;
	cin>>n;
	int A[n];
	for(int i=0; i<n; i++)
		cin>>A[i];
	int r=partition(A, 0, n-1);
	for(int i=0; i<n-1; i++){
		if(i==r){
			cout<<"["<<A[i]<<"]"<<" ";
		}
		else
			cout<<A[i]<<" ";
	}
	cout<<A[n-1]<<endl;
}
