#include <stdio.h>
int main()
{
int n;
while(scanf("%d",&n)!=EOF){
if(n==0) return 0;
int i,j;
int a[n+5],b[n+5],stack[2000]={0},top=-1;
while(1){
scanf("%d",&b[0]);
if(b[0]==0) break;
for(int i=1;i<n;i++)
{
scanf("%d",&b[i]);
}
for(i=0;i<n;i++){
a[i]=i+1;
}
j=0;
for(i=0;i<n;){
if(a[i]!=b[j]&&top==-1) {
stack[++top]=a[i];
i++;
}
if(a[i]!=b[j]&&top!=-1){
if(stack[top]==b[j]) {
j++;top--;}
if(stack[top]!=b[j]) {
stack[++top]=a[i];
i++;
}
}
if(a[i]==b[j]) {
i++;j++;
}}
while(top!=-1){
if(stack[top]==b[j]) {
j++;top--;}
if(stack[top]!=b[j])
break;
}
if(top==-1) printf("Yes\n");
else printf("No\n");
}
printf("\n");}
return 0;
}