#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int a[n+1];
for(int i=1;i<=n;i++){
cin>>a[i];
}
int f=0;
deque<int> q;
int u=a[1];
//cout<<u<<endl;
int mx=a[1];
for(int k=1;k<u;k++)q.push_front(k);
for(int i=2;i<=n;i++){
if(a[i]>a[i-1]){
mx = max(mx,a[i-1]);
int j = mx+1;
while(j<a[i]){
q.push_front(j);
j++;
}
}
else{
if(a[i]==q.front()&&!q.empty()){
q.pop_front();
}
else{
f=1;
break;
}
}
}
if(f==1)cout<<"NO\n";
else cout<<"YES\n";
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBtYWluKCl7CmludCBuOwpjaW4+Pm47CmludCBhW24rMV07CmZvcihpbnQgaT0xO2k8PW47aSsrKXsKICAgY2luPj5hW2ldOwp9CmludCBmPTA7CmRlcXVlPGludD4gcTsKaW50IHU9YVsxXTsKLy9jb3V0PDx1PDxlbmRsOwppbnQgbXg9YVsxXTsKZm9yKGludCBrPTE7azx1O2srKylxLnB1c2hfZnJvbnQoayk7CmZvcihpbnQgaT0yO2k8PW47aSsrKXsKICAgaWYoYVtpXT5hW2ktMV0pewogICAgICBteCA9IG1heChteCxhW2ktMV0pOwogICAgICAgaW50IGogPSBteCsxOwogICAgICAgd2hpbGUoajxhW2ldKXsKICAgICAgICAgcS5wdXNoX2Zyb250KGopOwogICAgICAgICBqKys7CiAgICAgICB9CiAgIH0KICAgZWxzZXsKICAgICAgaWYoYVtpXT09cS5mcm9udCgpJiYhcS5lbXB0eSgpKXsKICAgICAgICAgcS5wb3BfZnJvbnQoKTsKICAgICAgfQogICAgICBlbHNlewogICAgICAgICBmPTE7CiAgICAgICAgIGJyZWFrOwogICAgICB9CiAgIH0KfQppZihmPT0xKWNvdXQ8PCJOT1xuIjsKZWxzZSBjb3V0PDwiWUVTXG4iOwogCn0=