#include<iostream>
using namespace std;
int N;
int A[1<<17];
bool F[1<<17];
main()
{
	cin>>N;
	for(int i=0;i<N;i++)cin>>A[i];
	if(A[0]>A[N-1])
	{
		cout<<"No"<<endl;
		return 0;
	}
	cout<<"Yes"<<endl;
	int T=A[N-1];
	F[N-1]=true;
	for(int i=N-2;i>=0;i--)
	{
		if(T<A[i])
		{
			T=A[i];
			F[i]=true;
		}
	}
	int id=0,pre=1,flag=0;
	while(id<N)
	{
		while(!F[id])id++;
		for(int j=id-1;j>=pre;j--)cout<<(flag++?" ":"")<<A[j];
		cout<<(flag++?" ":"")<<A[id];
		pre=id+=1;
	}
	cout<<endl;
}