import java.util.Arrays;
import java.util.Scanner;
import java.util.Stack;
public class hdu_1363_Rails_201308121938 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc =new Scanner (System.in);
Stack<Integer> st = new Stack<Integer>();
while(true){//11969046 1983210400 1363 Accepted 6712K 1063MS Java 1823B 2013-08-12 21:46:05
int N =sc.nextInt();
if(N==0)break;
int []s = new int [N+10];
while(true){
s[1]=sc.nextInt();
if(s[1]==0)break;
boolean []vis =new boolean [N+10];//标记已经查看过的数
Arrays.fill(vis, false);
for(int i=2 ; i<= N; i++)
s[i]=sc.nextInt();
for(int i=1; i<s[1]; i++)//自身不进栈
st.push(i);
vis[s[1]]=true;
boolean flag = false;
for(int i=2; i<= N; i++){
vis[s[i]]=true;
if(s[i]<s[i-1]){
if(st.peek()!=s[i]){
System.out.println("No");
flag=true;
break;
}
else{
st.pop();
continue;
}
}
else if(s[i]>s[i-1]){
for(int j=s[i-1]+1;j<s[i];j++){
if(!vis[j]){
st.push(j);
}
}
}
}
if(flag==false){
System.out.println("Yes");
}
}
System.out.println();
}
}
}