#include <iostream> 
using  namespace  std; 
 struct  stack{                                                                   //стек 
 	int  truck[ 100 ] ; 
 	int  length =  0 ; 
 	int  pop ( ) { return  truck[ -- length] ; } 
 	void  push ( int  x) { truck[ length++ ]  =  x; } 
 	int  front ( )  { return  truck[ length- 1 ] ; } 
 	int  size ( )  { return  length; } 
 	} car;  
int  main( )  { 
	int  amount_n; 
	cin  >>  amount_n;                                                             //Ввод (количество вагонов) 
	int  n; 
	int  count =  1 ; 
	while  ( cin  >>  n) {                                                            //Цикл (для ввода нового вагона) 
		car.push ( n) ;                                                             //заводим в стек новый вагон  
		if  ( n ==  count) { count++ ;  car.pop ( ) ; } 									//проверяем, если вагон подходит, то выводим его на путь 2 
		while  ( car.size ( )  >  0 ) {  												//т.к. перед подходящим вагоном может стоять следующий подходящий вагон или несколько вагонов ,то пока стек не пуст будем проверять последние вагоны в стеке 
		if  ( car.front ( )  ==  count) { count++ ;  car.pop ( ) ; } 							//если вагон подходит выводим на путь 2 
		else  break ; 
		} 
	} 
 
	if  ( car.size ( )  ==  0 )  { cout  <<  "YES"  <<  endl; } 								//если стек пуст, то все вагоны были выведены на путь 2 
	else  cout  <<  "NO"  <<  endl; 
 
	return  0 ; 
} 
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwogc3RydWN0IHN0YWNreyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v0YHRgtC10LoKIAlpbnQgdHJ1Y2tbMTAwXTsKIAlpbnQgbGVuZ3RoID0gMDsKIAlpbnQgcG9wICgpe3JldHVybiB0cnVja1stLWxlbmd0aF07fQogCXZvaWQgcHVzaCAoaW50IHgpe3RydWNrW2xlbmd0aCsrXSA9IHg7fQogCWludCBmcm9udCAoKSB7cmV0dXJuIHRydWNrW2xlbmd0aC0xXTt9CiAJaW50IHNpemUgKCkge3JldHVybiBsZW5ndGg7fQogCX1jYXI7IAppbnQgbWFpbigpIHsKCWludCBhbW91bnRfbjsKCWNpbiA+PiBhbW91bnRfbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL9CS0LLQvtC0ICjQutC+0LvQuNGH0LXRgdGC0LLQviDQstCw0LPQvtC90L7QsikKCWludCBuOwoJaW50IGNvdW50ID0gMTsKCXdoaWxlIChjaW4gPj4gbil7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL9Cm0LjQutC7ICjQtNC70Y8g0LLQstC+0LTQsCDQvdC+0LLQvtCz0L4g0LLQsNCz0L7QvdCwKQoJCWNhci5wdXNoKG4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v0LfQsNCy0L7QtNC40Lwg0LIg0YHRgtC10Log0L3QvtCy0YvQuSDQstCw0LPQvtC9IAoJCWlmIChuID09IGNvdW50KXtjb3VudCsrOyBjYXIucG9wKCk7fQkJCQkJCQkJCS8v0L/RgNC+0LLQtdGA0Y/QtdC8LCDQtdGB0LvQuCDQstCw0LPQvtC9INC/0L7QtNGF0L7QtNC40YIsINGC0L4g0LLRi9Cy0L7QtNC40Lwg0LXQs9C+INC90LAg0L/Rg9GC0YwgMgoJCXdoaWxlIChjYXIuc2l6ZSgpID4gMCl7IAkJCQkJCQkJCQkJCS8v0YIu0LouINC/0LXRgNC10LQg0L/QvtC00YXQvtC00Y/RidC40Lwg0LLQsNCz0L7QvdC+0Lwg0LzQvtC20LXRgiDRgdGC0L7Rj9GC0Ywg0YHQu9C10LTRg9GO0YnQuNC5INC/0L7QtNGF0L7QtNGP0YnQuNC5INCy0LDQs9C+0L0g0LjQu9C4INC90LXRgdC60L7Qu9GM0LrQviDQstCw0LPQvtC90L7QsiAs0YLQviDQv9C+0LrQsCDRgdGC0LXQuiDQvdC1INC/0YPRgdGCINCx0YPQtNC10Lwg0L/RgNC+0LLQtdGA0Y/RgtGMINC/0L7RgdC70LXQtNC90LjQtSDQstCw0LPQvtC90Ysg0LIg0YHRgtC10LrQtQoJCWlmIChjYXIuZnJvbnQoKSA9PSBjb3VudCl7Y291bnQrKzsgY2FyLnBvcCgpO30JCQkJCQkJLy/QtdGB0LvQuCDQstCw0LPQvtC9INC/0L7QtNGF0L7QtNC40YIg0LLRi9Cy0L7QtNC40Lwg0L3QsCDQv9GD0YLRjCAyCgkJZWxzZSBicmVhazsKCQl9Cgl9CgkKCWlmIChjYXIuc2l6ZSgpID09IDApIHtjb3V0IDw8ICJZRVMiIDw8IGVuZGw7fQkJCQkJCQkJLy/QtdGB0LvQuCDRgdGC0LXQuiDQv9GD0YHRgiwg0YLQviDQstGB0LUg0LLQsNCz0L7QvdGLINCx0YvQu9C4INCy0YvQstC10LTQtdC90Ysg0L3QsCDQv9GD0YLRjCAyCgllbHNlIGNvdXQgPDwgIk5PIiA8PCBlbmRsOwoJCglyZXR1cm4gMDsKfQ==