#include<iostream>
using namespace std;
int partition(int *a,int p,int r){
int i=p,j=r+1;
int x=a[p];
while(true){
while(a[++i]<x&&i<r);
while(a[--j]>x);
if(i>=j)break;
swap(a[i],a[j]);
}
a[p]=a[j];
a[j]=x;
return j;
}
void qsort(int *a,int p,int r){
if(p<r){
int q=partition(a,p,r);
qsort(a,p,q-1);
qsort(a,q+1,r);
}
}
int main(){
int n;
int *a;
int i;
while(cin>>n){
a = new int [n];
for(i=0;i<n;i++)
cin>>a[i];
qsort(a,0,n-1);
for(i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;
}
return 0;
}
#include<iostream>
using namespace std;
int partition(int *a,int p,int r){
int i=p,j=r+1;
int x=a[p];
while(true){
while(a[++i]<x&&i<r);
while(a[--j]>x);
if(i>=j)break;
swap(a[i],a[j]);
}
a[p]=a[j];
a[j]=x;
return j;
}
bool qsort(int *a,int p,int r,int x){
if(p<=r){
int q=partition(a,p,r);
if(x==a[q])
return true;
if(x<a[q])
return qsort(a,p,q-1,x);
if(x>a[q])
return qsort(a,q+1,r,x);
}
}
int main(){
freopen("in.txt","r",stdin);
int n;
int *a;
int i,x;
while(cin>>n){
a = new int [n];
for(i=0;i<n;i++)
cin>>a[i];
cin>>x;
if(qsort(a,0,n-1,x)==true)
cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}