import java.util.*;
public class Main{
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    int M[] =new int[N];
    int L =M[0];
    int s =0;
    for(int i=0;i<N;i++){
      M[i]=sc.nextInt();
    L = Math.max(L,M[i]);
    if(L-1>M[i]){break;}
      s=s+1;}
    if(s==N){System.out.println("Yes");}
    else{System.out.println("No");
        }
  }
} import java.util.*; util.* java public class Main{
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    int M[] =new int[N];
    int L =M[0];
    int s =0;
    for(int i=0;i<N;i++){
      M[i]=sc.nextInt();
    L = Math.max(L,M[i]);
    if(L-1>M[i]){break;}
      s=s+1;}
    if(s==N){System.out.println("Yes");}
    else{System.out.println("No");
        }
  }
} Main public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    int M[] =new int[N];
    int L =M[0];
    int s =0;
    for(int i=0;i<N;i++){
      M[i]=sc.nextInt();
    L = Math.max(L,M[i]);
    if(L-1>M[i]){break;}
      s=s+1;}
    if(s==N){System.out.println("Yes");}
    else{System.out.println("No");
        }
  } main {
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    int M[] =new int[N];
    int L =M[0];
    int s =0;
    for(int i=0;i<N;i++){
      M[i]=sc.nextInt();
    L = Math.max(L,M[i]);
    if(L-1>M[i]){break;}
      s=s+1;}
    if(s==N){System.out.println("Yes");}
    else{System.out.println("No");
        }
  } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int N = sc.nextInt(); N sc.nextInt() sc.nextInt sc int M[] =new int[N]; M new int[N] N int L =M[0]; L M[0] M 0 int s =0; s 0 for(int i=0;i<N;i++){
      M[i]=sc.nextInt();
    L = Math.max(L,M[i]);
    if(L-1>M[i]){break;}
      s=s+1;} int i=0; int i=0; i 0 i<N i N i++ i++ i {
      M[i]=sc.nextInt();
    L = Math.max(L,M[i]);
    if(L-1>M[i]){break;}
      s=s+1;} {
      M[i]=sc.nextInt();
    L = Math.max(L,M[i]);
    if(L-1>M[i]){break;}
      s=s+1;} M[i]=sc.nextInt() M[i] M i sc.nextInt() sc.nextInt sc L = Math.max(L,M[i]) L Math.max(L,M[i]) Math.max Math L M[i] M i if(L-1>M[i]){break;} L-1>M[i] L-1 L 1 M[i] M i {break;} break; s=s+1 s s+1 s 1 if(s==N){System.out.println("Yes");}
    else{System.out.println("No");
        } s==N s N {System.out.println("Yes");} System.out.println("Yes") System.out.println System.out System System.out "Yes" {System.out.println("No");
        } System.out.println("No") System.out.println System.out System System.out "No" String[] args args public class Main{
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    int M[] =new int[N];
    int L =M[0];
    int s =0;
    for(int i=0;i<N;i++){
      M[i]=sc.nextInt();
    L = Math.max(L,M[i]);
    if(L-1>M[i]){break;}
      s=s+1;}
    if(s==N){System.out.println("Yes");}
    else{System.out.println("No");
        }
  }
} public class Main{
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    int M[] =new int[N];
    int L =M[0];
    int s =0;
    for(int i=0;i<N;i++){
      M[i]=sc.nextInt();
    L = Math.max(L,M[i]);
    if(L-1>M[i]){break;}
      s=s+1;}
    if(s==N){System.out.println("Yes");}
    else{System.out.println("No");
        }
  }
} Main
import java.util.*;
public class Main{
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    int M[] =new int[N];
    int L =M[0];
    int s =0;
    for(int i=0;i<N;i++){
      M[i]=sc.nextInt();
    L = Math.max(L,M[i]);
    if(L-1>M[i]){break;}
      s=s+1;}
    if(s==N){System.out.println("Yes");}
    else{System.out.println("No");
        }
  }
}