https://vjudge.net/contest/336391#problem/C
#include<iostream>
using namespace std;
int stack[1023],a[1004],top=0,k=0,n;// 第k辆车
int main()
{
while(cin>>n&&n>0)
{
while(cin>>a[1]&&a[1])
{
k=0;top=0;
for(int i=2;i<=n;i++)cin>>a[i];
for(int i=1;i<=n;i++)//N2
{
while(a[i]!=stack[top])//N1
{
stack[++top]=++k;
if(k>n)
{
cout<<"NO"<<endl;
k=-1;break;//N1
}
}
if(k==-1)break;//N2
top--;
}
if(k!=-1)cout<<"YES"<<endl;
}
cout<<endl;
}
}