#include <stdio.h>
#include <stdlib.h>


int main () {
    int n, i, j, num_seq, x, max_length;
    int *a, *seq_last, *seq_len;

    scanf("%d", &n);
    a = (int*)malloc(sizeof(int) * n);
    seq_last = (int*)malloc(sizeof(int) * n);
    seq_len = (int*)malloc(sizeof(int) * n);

    for (i = 0; i < n; i++) {
        scanf("%d", &a[i]);
    }

    num_seq = 0;
    for (i = 0; i < n; i++) {
        x = a[i];
        for (j = 0; j < num_seq; j++) {
            if (seq_last[j] < x) {
                seq_last[j] = x;
                seq_len[j]++;
            }
        }
        if (j == num_seq) {
            seq_last[j] = x;
            seq_len[j] = 1;
            num_seq++;
        }
    }
    max_length = 0;
    for (i = 0; i < num_seq; i++) {
        if (max_length < seq_len[i]) {
            max_length = seq_len[i];
        }
    }

    printf("%d\n", max_length);

    free(a);
    free(seq_last);
    free(seq_len);

    return 0;
}