#include using namespace std; #define rep(i, n) for (int i = 0; i < (n); i++) typedef long long ll; typedef pair pii; typedef vector vll; typedef vector vi; typedef vector> vvi; typedef vector> vvll; const ll inf = 1e16; const ll md = 1000000007; int main() { int n; cin>>n; vi aa(n); vi ans; rep(i,n) cin>>aa[i]; int top=aa[0]; int end=n; int ti=0; int pre=-1; vector fin(n+1,false); rep(i,n){ fin[aa[i]]=true; if (aa[i]!=end) continue; //cout<ti;j--) ans.push_back(aa[j]); if(pre==-1){ ans.push_back(end); pre=top; }else if (top>pre){ if(top!=end) ans.push_back(end); pre=min(pre,top); ans.push_back(max(pre,top)); }else if(end>pre){ if(top!=end) ans.push_back(top); pre=min(pre,end); ans.push_back(max(pre,end)); }else{ puts("No"); return 0; } if (i==n-1) break; //cout<