#include #include #define rep(i, a, b) for (ll i = (ll)(a); i < (ll)(b); i++) using namespace atcoder; using namespace std; typedef long long ll; int main() { int n; cin >> n; vector a(n); rep(i, 0, n) cin >> a[i]; dsu uf(n); rep(i, 0, n - 1) { if (abs(a[i] - a[i + 1]) <= 1) uf.merge(i, i + 1); } auto vx = uf.groups(); for (auto v : vx) { int mn = 1e9; for (auto x : v) mn = min(mn, a[x]); if (mn >= 2) { cout << "No" << endl; return 0; } } cout << "Yes" << endl; }