#include <stdio.h>
int p[10001];
int dp[10001];
int get_max(int a, int b) {
return a > b ? a : b;
}
int main() {
//freopen("input.txt", "rt", stdin);
int n;
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
dp[i] = 1;
scanf("%d", &p[i]);
}
int m = 0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
if (p[i] > p[j]) {
dp[i] = get_max(dp[i], dp[j] + 1);
}
}
m = get_max(m, dp[i]);
}
printf("%d", m);
return 0;
}