4
90 91 90 91
 4
54 54 54 55
 10
55 39 93 42 97 40 36 38 11 97
 3
90 39 98
 5
21 57 40 94 17
 8
46 4 30 85 52 6 84 13
 6
47 100 96 2 96 43
 4
61 28 3 81
 5
14 91 91 91 84
 3
22 23 24
 1
13
 9
13 80 13 38 98 85 11 73 74
 10
95 51 52 8 44 39 77 17 96 88
 3
40 40 40
 4
16 17 17 18
 3
68 67 67
 4
83 100 81 75
 9
71 71 70 70 71 70 69 70 71
 10
9 9 9 10 10 9 8 8 9 9
 6
87 86 86 86 85 86
 5
64 63 63 62 61
 3
76 9 12
 4
61 60 60 60
 7
23 37 39 8 72 31 85
 10
67 67 67 67 67 67 67 67 67 67
 4
92 18 29 93
 4
14 15 15 16
 10
79 84 22 38 23 22 33 42 13 96
 7
20 21 95 73 49 98 53
 10
28 61 23 73 61 33 45 55 18 43
 9
15 14 14 13 13 12 13 13 14
 5
46 46 47 46 45
 7
35 91 87 78 17 71 63
 3
69 26 73
 10
16 17 16 15 14 15 16 17 16 15
 9
95 7 97 61 90 7 30 65 39
 10
2 83 18 65 58 95 37 51 86 47
 6
59 59 60 60 59 58

YES YES NO NO NO NO NO NO NO YES YES NO NO YES YES YES NO YES YES YES YES NO YES NO YES NO YES NO NO NO YES YES NO NO YES NO NO YES
import java.io.*;
import java.util.Arrays;
import java.util.stream.Stream;

/**
 * @author madi.sagimbekov
 */
public class April1C {

    private static BufferedReader in;
    private static BufferedWriter out;

    public static void main(String[] args) throws IOException {
        open();

        int n = readInt();
        int[] x = readInts();
        int[] c = new int[n];
        for (int i = 0; i < n; i++) {
            c[i] = x[i];
        }

        Arrays.sort(c);

        if (n == 1) {
            System.out.println("YES");
        } else {
            int last = n - 1;
            while (last >= 0) {
                boolean changed = false;
                while (!changed) {
                    changed = true;
                    for (int i = 0; i < last; i++) {
                        if (x[i] - 2 >= x[i + 1]) {
                            int sum = (x[i] + x[i + 1]);
                            x[i + 1] = sum / 2;
                            x[i] = sum / 2 + sum % 2;
                            changed = false;
                            break;
                        } else if (x[i + 1] - 2 >= x[i]) {
                            int sum = (x[i] + x[i + 1]);
                            x[i] = sum / 2;
                            x[i + 1] = sum / 2 + sum % 2;
                            changed = false;
                            break;
                        }
                    }
                }

                int max = x[last];
                for (int i = last - 1; i >= 0; i--) {
                    if (max <= x[i]) {
                        max = x[i];
                        int t = x[last];
                        x[last] = x[i];
                        x[i] = t;
                    }
                }

                last--;
            }

            boolean yes = true;
            for (int i = 0; i < n; i++) {
                if (x[i] != c[i]) {
                    yes = false;
                    break;
                }
            }

            if (yes) {
                System.out.println("YES");
            } else {
                System.out.println("NO");
            }

        }
        close();
    }

    private static int[] readInts() throws IOException {
        return Stream.of(in.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
    }

    private static int readInt() throws IOException {
        return Integer.parseInt(in.readLine());
    }

    private static long[] readLongs() throws IOException {
        return Stream.of(in.readLine().split(" ")).mapToLong(Long::parseLong).toArray();
    }

    private static long readLong() throws IOException {
        return Long.parseLong(in.readLine());
    }

    private static double[] readDoubles() throws IOException {
        return Stream.of(in.readLine().split(" ")).mapToDouble(Double::parseDouble).toArray();
    }

    private static double readDouble() throws IOException {
        return Double.parseDouble(in.readLine());
    }

    private static String readString() throws IOException {
        return in.readLine();
    }

    private static void open() {
        in = new BufferedReader(new InputStreamReader(System.in));
        out = new BufferedWriter(new OutputStreamWriter((System.out)));
    }

    private static void close() throws IOException {
        out.flush();
        out.close();
        in.close();
    }

}
