#include<iostream>
#include<stack>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
stack<int> s;
int main()
{
int i;
int n,cur=1;//cur表示当前已经入栈的最大车厢号,入栈后无法回退重来
int temp=0;
int a[1001];
cin>>n;
for(i=1;i<=n;i++)
cin>>a[i];//输入的时候尽量使用cin语句避免出错
for(i=1;i<=n;i++)
{
while(cur<=a[i])
{
s.push(cur);cur++;
}
if(s.top()==a[i])
s.pop();
else
{
cout<<"NO"<<endl;
return 0;
}
}
cout<<"YES"<<endl;
return 0;
}