import java.util.Scanner;
public class LDS {
private static int[] niza;
static int[] dp;
static int rec(int idx) {
if(idx == niza.length - 1) {
return 1;
}
if(dp[idx] != -1) {
return dp[idx];
}
int result = 1;
for(int i = idx + 1; i < niza.length; i++) {
if(niza[idx] > niza[i]) {
result = Math.max(result, rec(i) + 1);
}
}
dp[idx] = result;
return result;
}
private static int najdolgaOpagackaSekvenca(int[] a) {
niza = new int[a.length];
niza = a;
int result = 0;
dp = new int[a.length];
for(int i = 0; i < a.length; i++) {
dp[i] = -1;
}
for(int i = 0; i < a.length; i++) {
result = Math.max(result, rec(i));
}
return result;
}
public static void main(String[] args) {
Scanner stdin = new Scanner(System.in);
int n = stdin.nextInt();
int a[] = new int[n];
for (int i = 0; i < a.length; i++) {
a[i] = stdin.nextInt();
}
System.out.println(najdolgaOpagackaSekvenca(a));
}
}