#include<stdio.h>
#include<string.h>
int main()
{
int n,i,j,btop;
int a[1010],b[1010];
while(scanf("%d",&n)&&n){
while(1){
btop=1;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
scanf("%d",&a[0]);
if(a[0]==0){
printf("\n");
break;}
for(i=1;i<n;i++)
scanf("%d",&a[i]);
for(i=1,j=0;i<=n;i++){
b[btop++]=i;
while(btop>1&&b[btop-1]==a[j]){
btop--;
j++;}
}
if(j==n)
printf("Yes\n");
else
printf("No\n");
}
}
return 0;
}
#include<string.h>
int main()
{
int n,i,j,btop;
int a[1010],b[1010];
while(scanf("%d",&n)&&n){
while(1){
btop=1;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
scanf("%d",&a[0]);
if(a[0]==0){
printf("\n");
break;}
for(i=1;i<n;i++)
scanf("%d",&a[i]);
for(i=1,j=0;i<=n;i++){
b[btop++]=i;
while(btop>1&&b[btop-1]==a[j]){
btop--;
j++;}
}
if(j==n)
printf("Yes\n");
else
printf("No\n");
}
}
return 0;
}