import java.util.Arrays;
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextInt()) { // 注意 while 处理多个 case
int a = in.nextInt();
int[] b = new int[a];
for (int i = 0; i < a; i++) {
b[i] = in.nextInt();
}
System.out.println(getMaxStep(b));
}
in.close();
}
private static int getMaxStep(int[] arr) {
int maxStep = 1;
int [] dp = new int[arr.length];
Arrays.fill(dp, 1);
for (int i = 1; i < arr.length; ++i) {
for (int j = 0; j < i; ++j) {
if (arr[j] < arr[i]) {
dp[i] = Math.max(dp[i], dp[j] + 1);
}
}
maxStep = Math.max(maxStep, dp[i]);
}
return maxStep;
}
}