n = int(input()) a = list(map(int,input().split())) if n == 1: if a[0] in [0,1]: print('Yes') else: print('No') exit() if min(a) >= 2: exit(print('No')) x = [] temp = [a[0]] for i in range(1,n): if abs(temp[-1] - a[i]) <= 1: temp.append(a[i]) else: x.append(temp) temp = [a[i]] if temp: x.append(temp) ans = 'Yes' for i in x: z = max(i) y = i.index(z) s = set() for j in range(y): s.add(i[j+1] - i[j]) if len(s) >= 3 or (1 in s and -1 in s): ans = 'No' s.discard(0) s.discard(-1) s.discard(1) if len(s) > 0: ans = 'No' s = set() for j in range(y,len(i)-1): s.add(i[j+1] - i[j]) if len(s) >= 3 or (1 in s and -1 in s): ans = 'No' s.discard(0) s.discard(-1) s.discard(1) if len(s) > 0: ans = 'No' print(ans)