#include <bits/stdc++.h>
using namespace std;
const int maxn = 4e5 + 5;
const int MOD = 1e9 + 7;
int a[maxn];
int main() {
  int n = 0;
  while (~scanf("%d", &n)) {
    int pos = 0;
    for (int i = 1; i <= n; i++) {
      scanf("%d", a + i);
      if (a[i] == n) {
        pos = i;
      }
    }
    if (pos == 1) {
      bool flag = 0;
      for (int i = 2; i < n; i++) {
        if (a[i] < a[i + 1]) {
          flag = 1;
          break;
        }
      }
      if (flag == 1) {
        puts("NO");
      } else {
        puts("YES");
      }
    } else if (pos == n) {
      bool flag = 0;
      for (int i = 1; i < n - 1; i++) {
        if (a[i] > a[i + 1]) {
          flag = 1;
          break;
        }
      }
      if (flag == 1) {
        puts("NO");
      } else {
        puts("YES");
      }
    } else {
      bool flag = 0;
      for (int i = 1; i < pos; i++) {
        if (a[i] > a[i + 1]) {
          flag = 1;
          break;
        }
      }
      for (int i = pos + 1; i < n; i++) {
        if (flag == 1) break;
        if (a[i] < a[i + 1]) {
          flag = 1;
        }
      }
      if (flag == 1) {
        puts("NO");
      } else {
        puts("YES");
      }
    }
  }
  return 0;
}
