#include <bits/stdc++.h>
using namespace std;
stack <int> C;
bool Judge(int a[],int n)
{
int k=0;
int i=1;
while(true)
{
if (i!=a[k])
{
if (!C.empty()&&C.top()==a[k])
{
k++;
C.pop();
continue;
}
else
{
C.push(i);
}
}
else
{
k++;
}
if (k==n)
{
return true;
}
if (i>n)
{
return false;
}
++i;
}
}
int main()
{
int n;
while (~scanf("%d",&n)&&n!=0)
{
int a[n];
while (~scanf("%d",&a[0])&&a[0]!=0)
{
for(int i=1;i<n;++i)
scanf("%d",&a[i]);
if (Judge(a,n))
{
printf("Yes\n");
}
else
printf("No\n");
}
if (a[0]==0)
{
printf("\n");
}
}
}